Ben XSS karşı ilk savunma hattı olarak bir düzenli ifade vardı.
public static function standard_text($str)
{
// pL matches letters
// pN matches numbers
// pZ matches whitespace
// pPc matches underscores
// pPd matches dashes
// pPo matches normal puncuation
return (bool) preg_match('/^[\pL\pN\pZ\p{Pc}\p{Pd}\p{Po}]++$/uD', (string) $str);
}
Bu Kohana 2.3 den aslında.
Bu kamu girilen metin (şimdiye kadar hiçbir HTML) üzerinde çalışan, ve bu test başarısız olursa girişini reddediyor. Metin her zaman htmlspecialchars()
(ya da daha spesifik olarak, Kohana's flavour, diğer şeyler arasında belirlenen karakter ekler) ile gösterilir. Ben de çıkışta bir strip_tags()
koydu.
O parantez ile bazı metin girmek istediğinde, istemci bir sorun vardı. Ben helper değiştirerek ya uzanan düşündüm, ama ben de bir ikincil düşünce vardı - Ben çift tırnak izin verirseniz, ben de tüm doğrulamak gerekir herhangi bir neden gerçekten var mı?
Ben sadece üzerinde kaçan çıktı güvenebilir miyim?