Kullanıcı girişi filtreleme - Ben HTML filtre gerekiyor?

2 Cevap php

Note: I take care of SQL injection and output escaping elsewhere - this question is about input filtering only, thanks.

Benim kullanıcı girişi filtreleme fonksiyonlarını üstlenmeden ortasındayım. filter_var() Ben şu yapmak ile bir tip özel filtre GET / POST parametre geçirmeden önce:

Şimdi bir soru: hala htmLawed veya HTML Purifier gibi bir filtreye parametre geçirmek için, ya da ben olarak güvenli giriş düşünebilirsiniz mantıklı mı? (Ben her şeyi kaldırmak gibi ben içine ilgilenmiyorum,) bu iki izin HTML öğelerinin ve niteliklerinin parçalı çoğunlukla farklı gibi geliyor bana, ama docs 'dangerous characters' ile ilgili bir bölüm var ki htmLawed onu kullanmak için bir neden olabilir göstermektedir. Bu durumda, ne bunun için aklı başında bir yapılandırma olacak?

2 Cevap

Güvenli XSS için birçok farklı yaklaşım vardır. Sadece neden sizin yaklaşım su tutar olmadığını bilmek sömürü olsa test etmektir. Ben bir Free XSS vulnerability Scanner *, ya da açık kaynak kullanarak tavsiye wapiti.

Her zaman javascript yürütmek html etiketleri gerekmez) becuase (sayisinda strip_tags kullanmak asla dürüst olmak! Sevdiğim htmlspecialchars($var,ENT_QUOTES);.

Örneğin bu xss açıktır:

print('<A HREF="http://www.xssed.com/'.strip_tags($_REQUEST[xss]).'">link</a>');

You don't need <> to execute javascript in this case because you can use onmouseover, here is an example attack:

$_REQUEST[xss]='" onMouseOver="alert(/xss/)"';

ENT_QUOTES bu XSS açığı yama olacak çift tırnak ilgilenir.

* Bu site / hizmet ile bağlı duyuyorum.

i ne yaptığınızı güvenli olduğunu düşünüyorum, en azından benim açımdan hiçbir html kodu filtresi aracılığıyla almalısınız