O'Reilly logo

PHP 5 Kochbuch, Third Edition by Stephan Schmidt, Ulrich Speidel, Matthias Brusdeylins, Carsten Lucke, Adam Trachtenberg, David Sklar

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required