Content-Security-Policy: form-action directive

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.

Chỉ thị form-action trong HTTP Content-Security-Policy (CSP) giới hạn các URL có thể được sử dụng làm mục tiêu gửi biểu mẫu từ ngữ cảnh nhất định.

Warning: Liệu form-action có nên chặn các chuyển hướng sau khi gửi biểu mẫu hay không vẫn còn đang tranh luận và cách triển khai trong trình duyệt của khía cạnh này không nhất quán (ví dụ: Firefox 57 không chặn các chuyển hướng trong khi Chrome 63 thì có).

Phiên bản CSP 2
Loại chỉ thị Navigation directive
Dự phòng default-src Không. Nếu không đặt chỉ thị này thì bất kỳ điều gì cũng được phép.

Cú pháp

http
Content-Security-Policy: form-action 'none';
Content-Security-Policy: form-action <source-expression-list>;

Chỉ thị này có thể nhận một trong các giá trị sau:

'none'

Không được phép gửi biểu mẫu. Dấu nháy đơn là bắt buộc.

<source-expression-list>

Danh sách các giá trị biểu thức nguồn phân cách bằng khoảng trắng. Biểu mẫu có thể được gửi đến các URL khớp với bất kỳ biểu thức nguồn nào. Đối với chỉ thị này, các giá trị biểu thức nguồn sau đây có thể áp dụng:

Ví dụ

Cấu hình thẻ meta

html
<meta http-equiv="Content-Security-Policy" content="form-action 'none'" />

Cấu hình Apache

apacheconf
<IfModule mod_headers.c>
  Header set Content-Security-Policy "form-action 'none';"
</IfModule>

Cấu hình Nginx

nginx
add_header Content-Security-Policy "form-action 'none';"

Trường hợp vi phạm

Sử dụng phần tử <form> với thuộc tính action đặt thành JavaScript nội tuyến sẽ gây ra vi phạm CSP.

html
<meta http-equiv="Content-Security-Policy" content="form-action 'none'" />

<form action="javascript:alert('Foo')" id="form1" method="post">
  <input type="text" name="fieldName" value="fieldValue" />
  <input type="submit" id="submit" value="submit" />
</form>

<!--
// Lỗi: Từ chối gửi dữ liệu biểu mẫu vì nó vi phạm chỉ thị
// Content Security Policy sau: "form-action 'none'".
-->

Thông số kỹ thuật

Thông số kỹ thuật
Content Security Policy Level 3
# directive-form-action

Khả năng tương thích trình duyệt

Xem thêm