2009-12-11 23 views
6

Tôi đã tự hỏi về tính bảo mật của việc sử dụng hàm htmlentities() chống lại các cuộc tấn công XSS và có thể các chức năng liên quan như htmlspecialchars.Là htmlentities() bullet proof?

thanks a lot :)

Trả lời

8

Bạn sẽ cần phải chỉ định rõ ràng mã hóa thích hợp (ví dụ: utf-8), Chris đã có một bài về cách đưa mã thậm chí htmlentities gọi mà không cần mã hóa thích hợp.

http://shiflett.org/blog/2005/dec/google-xss-example

+0

Cảm ơn rất nhiều đó là chính xác loại chứng minh tôi đang tìm kiếm :) tôi phải nghiên cứu các vấn đề về mã hóa. Bạn có biết một số tài liệu tốt về điều đó không? – fatmatto

+1

Tôi khuyến khích bạn đọc một ví dụ về thế giới thực của Gmail liên hệ với xss, và đọc phần khai thác, có thể tải xuống trong bài viết dưới đây, hy vọng sẽ cung cấp cho bạn một số ý tưởng về cách viết mã bảo mật: http://uneasysilence.com/ Lưu trữ/2007/01/9025/ Và đây là một bảng lừa đảo bạn có thể thấy hữu ích: http://openmya.hacker.jp/hasegawa/security/utf7cs.html –

+0

Cảm ơn bạn rất nhiều: D – fatmatto

4

Nó không phải là chống đạn, nó không bao giờ giúp bạn tiết kiệm 100%. Bạn phải nhớ rằng khi nói đến an ninh, nhà phát triển chịu trách nhiệm về nó. Ngôn ngữ cung cấp các chức năng bảo mật tốt và nhiều hơn nữa, do đó, nhà phát triển có thể bảo mật trang web của họ cho dù họ sử dụng phương pháp tiếp cận danh sách trắng hoặc phương pháp tiếp cận danh sách cấm. Nếu htmlentities là tất cả, khuôn khổ như codeigniter, kohana và nhiều hơn nữa sẽ không có đến với các chức năng bảo mật tuyệt vời của riêng mình.

Điều quan trọng nhất là vệ sinh và lọc bất kỳ đầu vào nào đến từ người dùng.

0

Không, các chức năng như htmlspecialcharshtmlentities không được bảo vệ chống lại tất cả các trường hợp Script Cross-Site Scripting.

Các trường hợp trong đó các chức năng sẽ không giúp là:

Đặc biệt lý do sau thường bị bỏ qua. Có rất nhiều ví dụ trong số OWASP’s XSS Prevention Cheat Sheet cho nơi tiêm có thể xảy ra trong tài liệu HTML. Nhưng không phải tất cả yêu cầu bất kỳ ký tự đặc biệt HTML nào để tiêm và thực thi mã JavaScript.

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