के खिलाफ रक्षा की पहली पंक्ति के रूप में रेगेक्स मुझे एक्सएसएस के खिलाफ रक्षा की पहली पंक्ति के रूप में रेगेक्स था।एक्सएसएस
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);
}
यह वास्तव में Kohana 2.3 से है।
यह सार्वजनिक प्रवेश टेक्स्ट (कोई HTML कभी नहीं) पर चलता है, और यदि यह परीक्षण विफल हो जाता है तो इनपुट से इंकार कर देता है। पाठ हमेशा htmlspecialchars()
(या अधिक विशेष रूप से, Kohana's flavour के साथ प्रदर्शित होता है, यह अन्य चीजों के साथ चार सेट जोड़ता है)। मैंने आउटपुट पर strip_tags()
भी लगाया।
ग्राहक को समस्या थी जब वह ब्रांड्स के साथ कुछ पाठ दर्ज करना चाहता था। मैंने सहायक को संशोधित करने या विस्तार करने के बारे में सोचा, लेकिन मेरे पास एक माध्यमिक विचार भी था - अगर मैं डबल कोट्स की अनुमति देता हूं, तो क्या वास्तव में कोई कारण है कि मुझे बिल्कुल मान्य करने की आवश्यकता क्यों है?
क्या मैं सिर्फ आउटपुट पर भागने पर भरोसा कर सकता हूं?