Content-Security-Policy: script-src-attr directive

Baseline Widely available

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

Chỉ thị script-src-attr trong HTTP Content-Security-Policy (CSP) chỉ định các nguồn hợp lệ cho các event handler script JavaScript nội tuyến.

Chỉ thị này chỉ chỉ định các nguồn hợp lệ cho các event handler script nội tuyến như onclick. Nó không áp dụng cho các nguồn JavaScript khác có thể kích hoạt thực thi script, chẳng hạn như các URL được tải trực tiếp vào các phần tử <script>XSLT stylesheets. (Các nguồn hợp lệ có thể được chỉ định cho tất cả các nguồn script JavaScript bằng script-src, hoặc chỉ cho các phần tử <script> bằng script-src-elem.)

Phiên bản CSP 3
Loại chỉ thị Fetch directive
Dự phòng default-src Có. Nếu chỉ thị này vắng mặt thì trình duyệt sẽ tìm kiếm chỉ thị script-src, và nếu cả hai đều vắng mặt thì dự phòng sang chỉ thị default-src.

Cú pháp

http
Content-Security-Policy: script-src-attr 'none';
Content-Security-Policy: script-src-attr <source-expression-list>;

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

'none'

Không có tài nguyên nào thuộc loại này được tải. 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. Tài nguyên thuộc loại này có thể được tải nếu chúng 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:

script-src-attr có thể được sử dụng kết hợp với script-src, và sẽ ghi đè lên chỉ thị đó cho các kiểm tra trên các inline handler:

http
Content-Security-Policy: script-src <source>;
Content-Security-Policy: script-src-attr <source>;

Ví dụ

Trường hợp vi phạm

Với tiêu đề CSP này:

http
Content-Security-Policy: script-src-attr 'none'

…event handler nội tuyến sau bị chặn và sẽ không được tải hoặc thực thi:

html
<button id="btn" onclick="doSomething()">Nhấp vào tôi</button>

Lưu ý rằng nói chung bạn nên thay thế các event handler nội tuyến bằng các lệnh gọi addEventListener:

js
document.getElementById("btn").addEventListener("click", doSomething);

Thông số kỹ thuật

Thông số kỹ thuật
Content Security Policy Level 3
# directive-script-src-attr

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

Xem thêm