Sinnvolles HTML in PHP mit dem HTML Purifier

Es kommt im Leben eines Programmierers stets der Punkt, wo er sich durch die Weiten des HTML graben, und es insbesondere mit PHP interpretieren muss. Natürlich könnte man jetzt argumentieren das heutzutage Templates das regeln aber das Problem liegt ganz wo anders: Alt-Anwendungen und WYSIWYG-HTML-Editoren.

Erstere haben es nicht so Ernst genommen mit dem Standardkonformen, zweitere haben in der Regel auch ihre eigene Auslegung davon, was valides HTML ist. Hinzu kommt aber noch ein dritte Anwendungsmöglichkeit: Cross-Site Scripting! Über HTML-Injection könnte über den WYSIWYG-Editor nämlich durchaus schadhafter Code in eine Web-Anwendung eingeschleust werden. Natürlich könnte man jetzt argumentieren, dass nur vertrauenswürdige Personen HTML liefern dürfen. Die Realität sieht aber in der Regel anders aus: Hier braucht man nur einmal an die Kommentarfunktion von WordPress zu denken, oder die Tatsache, dass ein bekannter Bundespolitiker es nicht geschafft hat, seine Typo3-Installation geeignet zu schützen.

Entsprechend ist klar, dass man als Programmierer mehrere Aufgaben hat: Man muss dafür sorgen, dass alles standardkonform ist (und am besten bereits so abgespeichert wird) und man muss zusätzlich auf das Einschleusen von Schadcode testen! Viele Open Source-Anwendungen behelfen sich hier damit, die Anzahl der möglichen HTML-Tags zu begrenzen. Dies ist leider eine nicht so gute Idee, da das Ergebnis deshalb noch lange nicht valides HTML ist.

Screenshot der HTML-Purifier-Homepage

Warum ich das alles erzähle? Der HTML Purifier ist in der Version 4.0 für PHP5 erschienen. Der rattenschnelle Parser überprüft den Code und formt ihn zu standardkonformen HTML um. Überprüfen heißt hierbei: Verhindern von Cross-Site Scripting Attacken.

Die beiden Content Management Systeme ImpressCMS und Midgard setzen fest auf den HTML Purifier und liefern diesen bereits mit dem Core aus. Aber neben vielen weiteren Systemen kann man den HTML Purifier mittels eines einfachen Plugins auch in WordPress, Drupal und MODx einbinden. Joomla, CodeIgniter und Symfony Plugins sind ebenfalls verfügbar.

Das Teil ist so etwas wie das Schweizer Taschenmesser des HTML-Parsing in HTML, also werft strip_tags in die Ecke und versucht es einmal mit einem richtigen Parser :)

Ähnliche Beiträge

Lambda Funktionen in PHP 5.3 Das neue PHP wird über Lambda-Funktionen verfügen. Toll! Aber was ist das eigentlich? Nun ja, es ist in der Tat etwas schwer zu erklären, aber ich wil...
Truncating von Text mit HTML Markup Manchmal sind es die einfachen Dinge im Leben, die einen Webworker in den Wahnsinn treiben. Alles beginnt mit einem Anruf: der Kunde möchte die ersten...
WebSockets mit PHP WebSockets ist eine jener Techniken, die die Web-Welt nachhaltig revolutionieren könnten, da so Client-Server-Anwendungen recht einfach und vor allem ...
Besseres Debugging in PHP Debugging in PHP ist das größte Arschloch von allen nicht schön. Wohl dem, der einigen Aufwand betrieben hat, um XDebug an den Start zu kriegen. Aber ...

Eine Antwort auf „Sinnvolles HTML in PHP mit dem HTML Purifier“

  1. Pingback: Linkhub Woche 03-2010 - pehbehbeh

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.