Bitte beachten Sie diese PHP-Seite mit dem Namen xss1.php. Du kannst es auf jeden LAMP-Server oder deine VM hochladen, um mein Rätsel zu verstehen.XSS in Textfeldern - PHP-Beispiel
Ich war unter dem Eindruck, Daten in Textfeldern werden angezeigt, wie es ist, und benötigen minimale oder keine XSS-Prüfung. In diesem Textfeld, wenn ich in <Skript> Alarm (1) steckte; </script > und das Formular wird veröffentlicht, der Wert wird wieder im Textfeld angezeigt, ohne XSS-Ausführung oder Injektion. Ich benutze Firefox 50.0.2. auf meinem Mac OS X.
Nun, wenn ich in " > <Skript> alert (1) halten; </script >, gibt es XSS und ich sehe eine Javascript-Warnung Pop-Out mit 1 darin. Die Zeichen "/> kommen nach dem Textfeld, das als Text auf der Seite dargestellt wird, nicht innerhalb des Textfelds. Was hat sich hier geändert? Ich bin ein wenig verwirrt und vielleicht die nächste Stunde damit verbringen, die Antwort auf XSS-Filter Evasion Spickzettel zu finden, bei https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
In Safari aber ich habe nicht die Javascript alert Pop-out, aber "/> wird außerhalb des Textfelds geschrieben, direkt danach auf der Seite.
Es ist 02.01 Uhr PT und ich bin Schlaflos in Seattle :)
Dank @Keatinge, ich war unter dem Eindruck, htmlspecialchars Arbeit, wenn Sie den Text auf der Seite, nicht für Textfelder, wo eine Zeichenfolge angezeigt werden soll, wie sie ist, nicht von der Skript-Engine verarbeitet werden. Das ist der Grund wurde zuvor nicht ausgeführt. Ich habe es jetzt mit htmlspecialchars im Textfeld versucht und es nicht zur Ausführung gebracht. –