In PHP ist die Funktion strip_tags($string, [$allowable_tags]) zum Entfernen von HTML-Code aus Strings gedacht.
Man übergibt der Funktion den zu bearbeitenden String und erhält diesen ohne HTML wieder zurück:
Einzelne Tags können erlaubt werden, indem man sie unter $allowable_tags hinzufügt (der zweite Parameter der Funktion).
$allowable_tags ist ein String, die zu erlaubenden HTML-Tags werden — inklusive der spitzen Klammern — im String eingetragen.
Ein Trennzeichen (z.B. Komma) wird nicht verwendet.
Vom Hinzufügen von erlaubten Tags ist grundsätzlich abzuraten, da auch sämtliche HTML-Attribute dieser erlaubten Tags unverändert übernommen werden.
Darunter können zum Beispiel das style-Attribut sein oder auch ein onclick-Attribut.
So kann ein Angreifer das Design der Seite negativ beeinflussen oder gar JavaScript-Code einschleusen.
Man übergibt der Funktion den zu bearbeitenden String und erhält diesen ohne HTML wieder zurück:
PHP-Code
<?php $str = 'Dieser <em>String</em> enthält <strong>HTML</strong>, welches unerwünscht ist.'; var_dump($str); var_dump(strip_tags($str)); ?>
Ausgabe
string(79) "Dieser <em>String</em> enthält <strong>HTML</strong>, welches unerwünscht ist." string(53) "Diese String enthält HTML, welches unerwuenscht ist."
Einzelne Tags können erlaubt werden, indem man sie unter $allowable_tags hinzufügt (der zweite Parameter der Funktion).
$allowable_tags ist ein String, die zu erlaubenden HTML-Tags werden — inklusive der spitzen Klammern — im String eingetragen.
Ein Trennzeichen (z.B. Komma) wird nicht verwendet.
PHP-Code
<?php $str = 'Dieser <em>String</em> enthält <strong>HTML</strong>, welches unerwünscht ist.'; var_dump(strip_tags($str, '<a><em>')); ?>
Ausgabe
string(62) "Dieser <em>String</em> enthält HTML, welches unerwünscht ist."
Vom Hinzufügen von erlaubten Tags ist grundsätzlich abzuraten, da auch sämtliche HTML-Attribute dieser erlaubten Tags unverändert übernommen werden.
Darunter können zum Beispiel das style-Attribut sein oder auch ein onclick-Attribut.
So kann ein Angreifer das Design der Seite negativ beeinflussen oder gar JavaScript-Code einschleusen.
PHP-Code
<?php $str = 'Ein <em onmouseover="alert(\'Angriff!\');" style="font-size:20em;">Beispielcode</em>.'; var_dump(strip_tags($str2, '<em>')); ?>
Ausgabe
string(83) "Ein <em onmouseover="alert('Angriff!');" style="font-size:20em;">Beispielcode</em>."