Giảm thiểu hành vi nhấp giả bằng XFO hoặc CSP

Sửa đổi giao diện người dùng là một cuộc tấn công độc hại, trong đó người dùng bị lừa nhấp vào các đường liên kết hoặc thành phần trên giao diện người dùng của một trang web có vẻ đáng tin cậy và quen thuộc. Việc này thường được thực hiện bằng cách nhúng một phần hoặc toàn bộ trang web đáng tin cậy vào trang web độc hại bằng <iframe>.

Tiêu đề X-Frame-Options (XFO)chỉ thị frame-ancestors trong tiêu đề Content-Security-Policy (CSP) có thể giảm thiểu các cuộc tấn công nhấp giả bằng cách kiểm soát cách một trang web có thể được nhúng trong <iframe>.

Nguyên nhân khiến quy trình kiểm tra Lighthouse không thành công

Quy trình kiểm tra sẽ đạt nếu tiêu đề XFO được đặt bằng SAMEORIGIN hoặc DENY hoặc lệnh frame-ancestors được đặt trên tiêu đề CSP. Quy trình kiểm tra sẽ không thành công nếu bạn không thiết lập chính sách kiểm soát khung nào trong số này.

Báo cáo Lighthouse cảnh báo rằng không tìm thấy tiêu đề phản hồi CSP hoặc XFO nào để giảm thiểu hành vi nhấp giả.
Báo cáo Lighthouse cảnh báo rằng không tìm thấy tiêu đề phản hồi CSP hoặc XFO nào để giảm thiểu hành vi nhấp giả.

Cách đặt chính sách kiểm soát khung để giảm thiểu hành vi nhấp giả

Bạn cần đặt chính sách kiểm soát khung trên tiêu đề HTTP của yêu cầu tài liệu ban đầu. Tiêu đề X-Frame-Options và lệnh frame-ancestors trong Content-Security-Policy sẽ không hoạt động nếu được đặt trên phần tử <meta>.

Tiêu đề XFO

Việc đặt DENY hoặc SAMEORIGIN cho tiêu đề XFO sẽ giúp giảm thiểu các cuộc tấn công giả mạo lượt nhấp:

X-Frame-Options: SAMEORIGIN
X-Frame-Options: DENY

Chỉ thị SAMEORIGIN chỉ cho phép hiển thị trang nếu tất cả các khung gốc đều có cùng nguồn gốc với chính trang đó. Ngược lại, lệnh DENY ngăn trang hiển thị trong một khung, bất kể nguồn gốc khung mẹ.

Tiêu đề CSP

Chỉ thị frame-ancestors trong tiêu đề CSP xác định những trang web có thể nhúng trang nhất định trong <frame>, <iframe>, <object> hoặc <embed>. Tương tự như XFO, bạn có thể dùng lệnh frame-ancestors của CSP để giảm thiểu các cuộc tấn công giả mạo lượt nhấp bằng cách đặt lệnh này thành self hoặc none:

Content-Security-Policy: frame-ancestors 'self';
Content-Security-Policy: frame-ancestors 'none';

Tuy nhiên, lệnh frame-ancestors linh hoạt hơn XFO vì lệnh này có thể đặt các nguồn mẹ cụ thể có thể nhúng trang:

Content-Security-Policy: frame-ancestors 'self' https://example.com;

Tài nguyên