Content-Security-Policy: base-uri directive

Baseline Widely available

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

Chỉ thị base-uri trong HTTP Content-Security-Policy giới hạn các URL có thể được sử dụng trong phần tử <base> của tài liệu. Nếu giá trị này vắng mặt thì bất kỳ URI nào cũng được phép. Nếu chỉ thị này vắng mặt thì trình duyệt sẽ sử dụng giá trị trong phần tử <base>.

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

Cú pháp

http
Content-Security-Policy: base-uri 'none';
Content-Security-Policy: base-uri <source-expression-list>;

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

'none'

Không thể đặt URI cơ sở bằng phần tử <base>. 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. Phần tử <base> có thể đặt URI cơ sở nếu giá trị của nó 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="base-uri 'self'" />

Cấu hình Apache

apacheconf
<IfModule mod_headers.c>
Header set Content-Security-Policy "base-uri 'self'";
</IfModule>

Cấu hình Nginx

nginx
add_header Content-Security-Policy "base-uri 'self';"

Trường hợp vi phạm

Vì tên miền của bạn không phải là example.com, phần tử <base> với href được đặt thành https://example.com sẽ gây ra vi phạm CSP.

html
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'" />
<base href="https://example.com/" />

<!--
// Lỗi: Từ chối đặt URI cơ sở của tài liệu thành 'https://example.com/'
// vì nó vi phạm chỉ thị Content Security Policy sau:
// directive: "base-uri 'self'"
-->

Thông số kỹ thuật

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

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

Xem thêm