2009-12-11 13 views
6

Kendime XSS saldırılarına karşı php işlevi htmlentities() kullanma güvenliğinden ve belki de htmlspecialchars gibi ilgili işlevlerden bahsediyordum.htmlentities() kurşun geçirmez midir?

çok teşekkürler :) Açıkça uygun kodlamayı belirtmek gerekir

cevap

8

(örn: utf-8), Chris uygun kodlama olmadan bile arayarak htmlentities kod enjekte hakkında bir yazı vardı.

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

+0

Teşekkür :) i kodlama sorunlarını incelemek gerekir. Bunun hakkında iyi belgeler biliyor musunuz? – fatmatto

+1

Gmail kontakt xss bir gerçek dünya örnek okumanızı öneriyoruz ve indirilebilir aşağıda post olan istismar okuma, umarım size güvenli kod yazma konusunda bazı fikirler verecektir: http://uneasysilence.com/ arşiv/2007/01/9025/ Burada bulabileceğiniz yararlı bir hile sayfası: http://openmya.hacker.jp/hasegawa/security/utf7cs.html –

+0

Çok teşekkür ederim: D – fatmatto

4

O kurşun geçirmez, bu size% 100 tasarruf asla değildir. Güvenlik söz konusu olduğunda geliştiricinin bundan sorumlu olduğunu hatırlamanız gerekir. Diller, güvenlik işlevlerinin iyi bir şekilde sunulmasını sağlar ve daha çok geliştiricinin, sitelerini beyaz liste yaklaşımı veya kara liste yaklaşımı kullanıp kullanmadıkları konusunda nasıl güvence altına aldığıdır. Eğer htmlentity hepsi buysa, kod yazıcısı, kohana ve daha fazlası gibi çerçeveler kendi büyük güvenlik işlevleriyle ortaya çıkmazdı.

en önemli şey sanitalize ve kullanıcıdan gelen herhangi bir giriş filtre etmektir.

0

Hayır, htmlspecialchars ve htmlentities gibi fonksiyonlar siteler arası komut dosyası tüm durumlarda karşı koruma sağlamaz. Bu fonksiyon yardımcı olmayacaktır hangi

Durumlar şunlardır:

Özellikle ikinci nedeni genellikle kaçırılmaz. Bir HTML belgesinde bir enjeksiyonun meydana gelebileceği OWASP’s XSS Prevention Cheat Sheet'da birçok örnek vardır. Ancak, her biri JavaScript kodunu enjekte ve yürütmek için HTML özel karakterlerinden herhangi birini gerektirmez. Tam olarak ispat tür bir sürü i arıyordu