PHP: Eingabefelder sicherer machen
Wer Kommentare oder Foreneinträge auf seiner Homepage zulässt, öffnet eine Sicherheitslücke. Über geschicktes Nutzen von HTML-Codes können Angreifer Ihren Server für eigene Zwecke nutzen. Der Weg für die Angreifer führt über HTML-Tags, etwa ein <iframe>, das dann Inhalte von ganz anderen Servern einbindet und Daten abfängt.
Damit das gar nicht erst passiert hat, PHP zwei gute Gegenmittel. Das eine heißt htmlspecialchars(), das andere strip_tags().
htmlspecialchars() wandelt alle in einem String enthaltenen HTML-Codes in Entitäten um, aus einem < wird zum Beispiel ein <. Damit verliert eingeschleuster HTML-Code seine Wirksamkeit. Gibt jemand HTML ein, erscheint der als normaler Text mit allen spitzen Klammern.
Schön sieht das freilich nicht aus. Möchten Sie lieber gar keine HTML-Codes sehen, werfen Sie die einfach hinaus. Dafür zuständig ist die Funktion strip_tags(). Die entfernt komplett alle HTML-Codes.
Ein kleines Code-Beispiel:
<?PHP
$strBoeserString = "ich bin <b>fett</b>.";
echo htmlspecialchars($strBoeserString)."<br/>\n";
echo strip_tags($strBoeserString)."<br/>\n";
?>
Das Resultat sieht als HTML-Quelltext so aus:
ich bin <b>fett</b>.<br/>
ich bin fett.<br/>
In der oberen Zeile sind die HTML-Zeichen umgewandelt, in der unteren entfallen Sie. Das <br/> wird jeweils nach dem Bearbeiten des Strings angehängt.




