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> và 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
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:
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:
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:
<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:
document.getElementById("btn").addEventListener("click", doSomething);
Thông số kỹ thuật
| Specification |
|---|
| Content Security Policy Level 3> # directive-script-src-attr> |