2012-11-06 6 views
5

Ich möchte eine begrenzte weiße Liste von HTML-Tags, die Benutzer in meinem Forum verwenden können. So habe ich die HTML Purifier konfiguriert wie folgt:HTML Purifier - Ändern Sie die Standardeinstellung HTML-Tags Konfiguration

$config = HTMLPurifier_Config::createDefault(); 
$config->set('HTML.Allowed', 'p,a[href|rel|target|title],img[src],span[style],strong,em,ul,ol,li'); 
$purifier = new HTMLPurifier($config); 

Was ich frage mich ist, hat die Standardkonfiguration des HTML Purifier noch gelten, mit Ausnahme von einer reduzierten Anzahl von akzeptierten HTML-Tags oder tun I müssen Sie jeden möglichen Konfigurationsparameter manuell neu einstellen?

Zusätzlich sollte ich die Standardkonfiguration in irgendeiner Weise optimieren, um sicher zu bleiben? Ich bin neu in der ganzen XSS-Schutz-Sache, neu in HTML Purifier und habe nicht festgestellt, dass das Handbuch viele "grundlegende" Tipps und Hinweise enthält.

Antwort

4

HTML Purifier ist sicher, durch Ausfall- und Beschränkungen Sie verhängen durch% Veränderung HTML.Allowed sind garantiert nur die zulässige Tag gesetzt zu reduzieren. Sehen Sie sich http://htmlpurifier.org/live/smoketests/printDefinition.php an, um zu sehen, wie die Konfiguration der Anpassung das zulässige Tagset ändert.

0

Warum nicht einfach einen DOM-Parser verwenden und prüfen, ob der Tag-Typ in der weißen Liste der HTML-Tags erlaubt ist?

Wenn Sie die Eingabe in eine DOM-Knotenliste konvertieren, sollten Sie in der Lage sein, alle DOM-Knoten zu durchlaufen und zu prüfen, ob der Typ auf diese Weise erlaubt ist. php.net hat großartige Beispiele dafür, wie man das von anderen wie Ihnen versucht, um das Problem der Eingabesanierung zu lösen.

Weitere Informationen hier: http://php.net/manual/en/class.domdocument.php

+0

Warum das Rad neu erfinden? HTMLPurifier ist ein ausgereiftes Produkt, das das gut macht. – rjmunro

Verwandte Themen