17.16 Cross-Site-Scripting verhindern
Problem
Sie müssen zuverlässig Cross-Site-Scripting-Angriffe (XSS) auf Ihre PHP-Anwendungen verhindern.
Lösung
Maskieren Sie alle HTML-Ausgaben mit htmlentities( )
und achten Sie dabei darauf, dass Sie die richtige Zeichenkodierung angeben:
<?php /* Beachten Sie die Angaben der Zeichenkodierung. */ header('Content-Type: text/html; charset=UTF-8'); /* Array für maskierte Daten initialisieren. */ $html = array(); /* Gefilterte Daten maskieren. */ $html['username'] = htmlentities($clean['username'], ENT_QUOTES, 'UTF-8'); echo "<p>Willkommen, {$html['username']}.</p>"; ?>
Diskussion
Die Funktion htmlentities( )
ersetzt alle Zeichen durch das entsprechende HTML-Entity, wenn es eins gibt. >
wird beispielsweise durch ...
Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.