X-Frame-Options header
Note:
Để có nhiều tùy chọn toàn diện hơn so với tiêu đề này cung cấp, xem chỉ thị frame-ancestors trong tiêu đề Content-Security-Policy.
Tiêu đề HTTP X-Frame-Options response header có thể được sử dụng để chỉ ra liệu trình duyệt có nên được phép hiển thị tài liệu trong <frame>, <iframe>, <embed> hoặc <object> hay không. Các trang web có thể sử dụng điều này để tránh các cuộc tấn công clickjacking và một số cross-site leaks, bằng cách đảm bảo rằng nội dung của họ không được nhúng vào các trang khác.
Nếu tiêu đề này không được gửi và trang web không triển khai bất kỳ cơ chế nào khác để hạn chế nhúng (chẳng hạn như chỉ thị CSP frame-ancestors), thì trình duyệt sẽ cho phép các trang khác nhúng tài liệu này.
| Loại tiêu đề | Response header |
|---|
Cú pháp
X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
Chỉ thị
DENY-
Tài liệu không thể được tải trong bất kỳ frame nào, bất kể nguồn gốc (cả nhúng cùng nguồn gốc và cross-origin đều bị chặn).
SAMEORIGIN-
Tài liệu chỉ có thể được nhúng nếu tất cả các frame tổ tiên có cùng origin với chính trang đó.
ALLOW-FROM originDeprecated-
Đây là chỉ thị đã lỗi thời. Các trình duyệt hiện đại gặp tiêu đề phản hồi với chỉ thị này sẽ bỏ qua hoàn toàn tiêu đề. Tiêu đề HTTP
Content-Security-Policycó chỉ thịframe-ancestorsmà bạn nên sử dụng thay thế.
Ví dụ
Warning:
Đặt X-Frame-Options bên trong phần tử <meta> (ví dụ, <meta http-equiv="X-Frame-Options" content="deny">) không có hiệu lực. X-Frame-Options chỉ được thực thi qua tiêu đề HTTP, như được hiển thị trong các ví dụ bên dưới.
Cấu hình Apache
Để cấu hình Apache gửi tiêu đề X-Frame-Options cho tất cả các trang, thêm điều này vào cấu hình trang web:
Header always set X-Frame-Options "SAMEORIGIN"
Để cấu hình Apache đặt X-Frame-Options thành DENY, thêm điều này vào cấu hình trang web:
Header set X-Frame-Options "DENY"
Cấu hình Nginx
Để cấu hình Nginx gửi tiêu đề X-Frame-Options, thêm điều này vào cấu hình http, server hoặc location của bạn:
add_header X-Frame-Options SAMEORIGIN always;
Bạn có thể đặt tiêu đề X-Frame-Options thành DENY bằng cách sử dụng:
add_header X-Frame-Options DENY always;
Cấu hình IIS
Để cấu hình IIS gửi tiêu đề X-Frame-Options, thêm điều này vào tệp Web.config của trang web:
<system.webServer>
…
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
Để biết thêm thông tin, xem bài viết hỗ trợ Microsoft về cách đặt cấu hình này bằng giao diện người dùng IIS Manager.
Cấu hình HAProxy
Để cấu hình HAProxy gửi tiêu đề X-Frame-Options, thêm điều này vào cấu hình front-end, listen hoặc backend của bạn:
rspadd X-Frame-Options:\ SAMEORIGIN
Ngoài ra, trong các phiên bản mới hơn:
http-response set-header X-Frame-Options SAMEORIGIN
Cấu hình Express
Để đặt X-Frame-Options thành SAMEORIGIN bằng Helmet, thêm điều sau vào cấu hình máy chủ của bạn:
import helmet from "helmet";
const app = express();
app.use(
helmet({
xFrameOptions: { action: "sameorigin" },
}),
);
Đặc tả
| Specification |
|---|
| HTML> # the-x-frame-options-header> |