Sanitizer: phương thức removeUnsafe()
Khả dụng hạn chế
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Phương thức removeUnsafe() của giao diện Sanitizer cấu hình bộ làm sạch để nó sẽ xóa tất cả các phần tử và thuộc tính được trình duyệt coi là không an toàn XSS.
Phương thức có thể được gọi để làm cho bất kỳ Sanitizer nào an toàn XSS.
Cú pháp
removeUnsafe()
Tham số
Không có.
Giá trị trả về
true nếu thao tác xóa bất kỳ phần tử, thuộc tính hoặc thuộc tính nội dung trình xử lý sự kiện nào được coi là không an toàn XSS, và false nếu không có phần tử hoặc thuộc tính nào bị xóa.
Mô tả
Phương thức removeUnsafe() cấu hình bộ làm sạch để nó sẽ xóa tất cả các phần tử và thuộc tính được trình duyệt coi là không an toàn XSS.
Bao gồm các phần tử <embed>, <frame>, <iframe>, <object>, <script> và <use>, cùng các thuộc tính nội dung trình xử lý sự kiện như onafterprint, onbeforeinput, v.v.
Lưu ý rằng nếu bạn đang dùng bộ làm sạch với một trong các setter HTML "an toàn", chẳng hạn như Element.setHTML() và ShadowRoot.setHTML(), bạn không cần gọi phương thức này để làm cho bộ làm sạch an toàn.
Khi dùng trong các setter này, các phần tử và thuộc tính tương tự sẽ bị xóa khỏi đầu vào mà không sửa đổi phiên bản Sanitizer được truyền vào.
Ví dụ
>Sử dụng cơ bản
Mã sau đây cho thấy cách removeUnsafe() được dùng.
// Tạo bộ làm sạch.
const sanitizer = new Sanitizer(/* Một số cấu hình */);
// Làm cho cấu hình an toàn XSS
sanitizer.removeUnsafe();
Làm cho cấu hình bộ làm sạch an toàn
Ví dụ này minh họa cách gọi removeUnsafe() làm cho cấu hình bộ làm sạch an toàn XSS.
JavaScript
Mã trước tiên tạo một đối tượng Sanitizer mới cho phép phần tử an toàn <p>, các phần tử không an toàn <script> và <iframe>, và thuộc tính trình xử lý sự kiện không an toàn onwebkitanimationend.
Mã sau đó gọi removeUnsafe() trên bộ làm sạch và ghi nhật ký cấu hình của nó.
// Tạo bộ làm sạch cho phép
const sanitizer = new Sanitizer({
elements: ["p", "script"],
attributes: ["onwebkitanimationend"],
replaceWithChildrenElements: ["iframe"],
});
// Làm cho bộ làm sạch an toàn!
sanitizer.removeUnsafe();
// Ghi nhật ký cấu hình bộ làm sạch
const sanitizerConfig = sanitizer.get();
log(JSON.stringify(sanitizerConfig, null, 2));
Kết quả
Cấu hình kết quả được hiển thị bên dưới.
Lưu ý cách các phần tử và thuộc tính không an toàn đã bị xóa khỏi danh sách "cho phép" vào các danh sách "xóa" tương ứng.
Trong trường hợp này chúng tôi vẫn có <p> trong các phần tử được phép, vì vậy chỉ các phần tử <p> trong đầu vào mới được nhập khi bộ làm sạch được dùng.
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| HTML Sanitizer API> # dom-sanitizer-removeunsafe> |