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.