php - XSS: REQUEST_URI run through htmlspecialchars() - then replacing & with & - enough to prevent XSS injection? -
परिदृश्य: मैं इसे बदलना चाहूंगा: मैं जिस स्ट्रिंग के साथ काम कर रहा हूं वह यूआरएल है और मैं यूआरएल पैरामीटर को उदाहरण समाधान: प्रश्न: अगर मैं अपने पृष्ठ पर समान प्रश्न: ; < / Ul> सिजमेन रुउहोफ ने यह रोचक मुद्दा बनाया है जो मुझे लगता है कि प्रासंगिक है : 'ए' टैग के 'href' विशेषता की तरह कुछ टैग के विशेषताओं में जावास्क्रिप्ट मूल्यांकन के खिलाफ 'ENT_QUOTES' विकल्प आपकी सुरक्षा नहीं करता है। नीचे दिए गए लिंक पर क्लिक करते समय दिए गए जावास्क्रिप्ट को निष्पादित किया जाएगा: " '& Lt; & gt; के साथ
& amp; quot; & amp; # 039; & amp; लिटी; & amp; gt; लेकिन "& amp; चरित्र रखें"
& amp; से अलग करना चाहता हूं,
& amp; amp; नहीं < / P>
$ url = "/ some / path? A = 123 & amp; b = 456"; // $ _SERVER से [ "REQUEST_URI"]; $ url = htmlspecialchars ($ url, ENT_QUOTES, 'आईएसओ -885 9-1', सच है); $ url = str_replace ('& amp; amp;', '& amp;', $ url);
$ url का उपयोग करता हूं (जैसे
echo $ url; एचटीएमएल या जावास्क्रिप्ट के अंदर) का उपयोग एक्सएसएस द्वारा किया जा सकता है?
htmlspecialchars () लेकिन मुझे जवाब नहीं मिल सका है कि "& amp;" चरित्र (और यह अनुमति दे सकते हैं htmlentities) XSS करने के लिए आपको बेनकाब कर सकते हैं।
& lt; php $ _GET ['a'] = 'जावास्क्रिप्ट: अलर्ट (document.cookie)' ; $ Href = htmlEntities ($ _GET ['ए'], ENT_QUOTES); प्रिंट "& lt; a href = '$ href' & gt; लिंक & lt; / a & gt;"; # में परिणाम: & lt; a href = 'javascript: alert (document.cookie)' & gt; लिंक & lt; / a & gt; ? & Gt;
Comments
Post a Comment