Hướng dẫn angular innerhtml sanitize - làm sạch góc bên tronghtml
Tại sao một số kiểu của bạn không còn hoạt động khi sử dụng Show Cách tiếp cận dễ nhất là vô hiệu hóa Domsanitizer và cách tiếp cận được đề xuất trên Stack Overflow là tạo ra một đường ống Nhưng trước khi nhảy ngay vào một giải pháp vô hiệu hóa một tính năng bảo mật theo mặc định, hãy nghĩ về những gì chúng ta đang làm trong một giây. Trường hợp sử dụng mà tôi (và rõ ràng nhiều người khác) có là tôi muốn hiển thị nội dung HTML do người dùng tạo - từ các đoạn nhỏ đến toàn bộ trang HTML. Vấn đề là 🙁 Điều đó thật khó chịu. Trong trường hợp này, tôi phải ném em bé ra ngoài với nước tắm. Tôi phải tắt nó hoàn toàn để nó hoạt động cho những gì tôi cần, nhưng tôi mất tất cả các lan can bảo vệ góc. Không có Bueno. Domsanitizer cung cấp một vài phương pháp để cho phép bạn chỉ bỏ qua một số phần nhất định trong nội dung của mình - nhưng nó không hoàn toàn hoạt động cho HTML do người dùng tạo. Đây là lý do tại sao. sanitizer.bypassSecurityTrustScript (Nội dung) - sanitizer.bypassSecurityTrustStyle (Nội dung) - sanitizer.bypassSecurityTrusTHTML (Nội dung) - Nếu bạn thấy mình trong tình trạng khó khăn này, nơi bạn phải bỏ qua Có, bạn sẽ phải kéo sự phụ thuộc khác vào ứng dụng của mình, nhưng cộng đồng JS nguồn mở đến giải cứu. Các thư viện sau đây phổ biến trên NPM & GitHub, hoạt động ở cả phía máy chủ và phía máy khách, với chất khử trùng có thể định cấu hình sử dụng danh sách trắng/danh sách đen và các tính năng thú vị khác. Chắc chắn đáng để kiểm tra. Punkave/Sanitize-HTML là một lựa chọn phổ biến với một cái tên rất suc và rõ ràng. Dưới sự phát triển tích cực gần đây. Cure53/Dompurify Dompurify có báo cáo kiểm toán bảo mật có sẵn công khai từ năm 2015, chỉ có 2 lỗ hổng chính cho IE9. Cũng đáng để đọc nếu bạn muốn tìm hiểu một cuộc tấn công clobbering là gì. Kiểm tra nó ở đây. Đây là những gì đường ống Bạn có thể dựa vào thư viện HTML-Phân bổ để làm sạch nội dung của bạn trước, để bạn có thể bỏ qua chất khử trùng mà không mất lợi ích của bảo vệ XSS. Chỉ cần một lời nhắc - bạn không bao giờ có thể tin tưởng khách hàng/trình duyệt. Luôn luôn vệ sinh trên phía máy chủ nơi bạn có thể đảm bảo rằng bạn không lưu bất kỳ nội dung độc hại nào. Nếu bạn đang sử dụng NodeJS ở phía máy chủ, thì điều này sẽ hoạt động hoàn hảo cho bạn. Tuy nhiên, nếu bạn thấy mình cần vệ sinh HTML ở phía máy khách, hãy mang đến một trong những thư viện vệ sinh để bạn nhận được sự bảo vệ khỏi các cuộc tấn công XSS khi một bản tích hợp như Domsanitizer không đáp ứng nhu cầu của bạn. Tôi muốn nghe từ những người khác đã giải quyết vấn đề này - để lại nhận xét nếu bạn thực hiện một cách tiếp cận khác, hoặc chỉ vô hiệu hóa nó hoàn toàn! Nhà phát triển phần mềm SR và Giám đốc kỹ thuật tại một công ty EDTech viết về các nhóm hàng đầu, thử nghiệm tự động và các trang web xây dựng được lưu trữ trên AWS. Bạn có thể quan tâm… |