2010-11-21 17 views
5

Tôi thực hiện rất nhiều $this->escape() trong chế độ xem zend. Điều này có đủ để ngăn chặn XSS không?

Có HTMLPurifier bên ngoài khung công tác Zend. Tôi tự hỏi làm thế nào zend của $this->escape() so sánh với HTMLPurifier.

Trả lời

4

escape là bí danh của htmlspecialchars. Nó cho phép bạn xuất văn bản thuần, trong khi HTMLPurifier cho phép bạn xuất HTML an toàn.

Bạn không thể có XSS với văn bản thuần túy.

Bạn phải sử dụng HTMLPurifier thay vì strip_tags nếu bạn muốn xuất HTML an toàn đến từ đầu vào của người dùng (ví dụ như trình soạn thảo văn bản đa dạng thức).

4

HTMLPurifier đang phục vụ cho mục đích khác nhau. HTMLPurifier không thoát HTML ... tốt, không chính xác. Phải mất một cấu hình bạn cung cấp cho nó xác định những gì được cho phép trong HTML và những gì không, và nó làm sạch dựa trên đó. Kết quả thực sự vẫn là HTML, với một số thứ được loại bỏ/khử trùng.

thoát() trên bàn tay khác đang chuyển nhân vật HTML giống như vào các thực thể HTML để họ làm các nhân vật cùng trong trình duyệt thay vì được giải thích dưới dạng HTML (ví dụ & ->&amp;, < ->&lt;, > ->&gt; v.v.).

Mục tiêu khác nhau.

Google Chrome có giúp bạn tiết kiệm từ các vấn đề XSS không? Có, nhưng đảm bảo bạn đã định cấu hình mã hóa ký tự của mình một cách chính xác.

Các vấn đề liên quan