Jeffrey Cross
Jeffrey Cross

Stoppen Sie XSS-Angriffe mit SafeHTML

Wenn Sie dem Benutzer gestatteten Inhalt auf Ihrer Website zulassen, besteht das Problem, dass der vom Benutzer bereitgestellte HTML-Code auf sichere Weise verwendet wird. Die sicherste Art, mit Dingen umzugehen, besteht natürlich darin, den gesamten HTML-Code aus Benutzereingabefeldern zu entfernen. Leider gibt es viele Situationen, in denen es schön wäre, eine große Teilmenge von HTML-Eingaben zuzulassen, aber alles Mögliche auszuschließen.

SafeHTML ist ein leichtes PHP-Eingabedesitizer, das genau das tut. Führen Sie einfach ein beliebiges Eingabefeld durch den SafeHTML-Filter, und alle Javascript-, Objekt- oder Layout-Tags werden aus dem bereitgestellten Text entfernt. Es ist auch eine vernünftige Arbeit bei der Korrektur von fehlerhaftem, fehlerhaftem Code, der ebenfalls ein häufiges Problem mit vom Benutzer eingebrachten Daten ist.

Es ist einfach zu benutzen. Instantiieren Sie einfach das SafeHTML-Objekt und rufen Sie seine parse-Methode auf:

required_once ('classes / safehtml.php');

$ safehtml = & new SafeHTML ();

if (isset ($ _POST ["Eingabefeld"])) {$ Eingabefeld = $ _ POST ["Eingabefeld"]; $ cleaninput = $ safehtml-> parse ($ inputfield); }

Dadurch wird der eingegebene Parameter "inputfield" verwendet, alle Bösewichte entfernt, die verbleibenden Werte XHTMLify und das Ergebnis in der $ cleaninput-Variablen gespeichert. Es ist eine einfache Ergänzung Ihres Codes und viel einfacher als der Versuch, Ihren eigenen Code zu erstellen.

Mein einziges Rindfleisch mit dem Paket ist, dass es mit einer Standard-Zulassungsrichtlinie geschrieben wird, die Tags entfernt, die sich im deleteTags-Array befinden, aber im Wesentlichen alles andere durchlassen. Wenn Sie nur die Tags zulassen möchten, die Sie ausdrücklich zulassen möchten, empfiehlt es sich, ein allowTags-Array hinzuzufügen und die _openHandler-Methode anzupassen, wobei nach der deleteTags-Prüfung Folgendes hinzugefügt wird:

if (! in_array ($ name, $ this-> allowTags)) {return true; }

Sie müssen allowTags mit allen Informationen füllen, die Sie kennen, um sicher und willkommen zu sein, und Sie werden möglicherweise einige vermissen, die die Benutzer legitimerweise verwenden möchten. Dies kann jedoch leicht korrigiert werden und die standardmäßige Ablehnungsrichtlinie ist auf lange Sicht viel sicherer .

SafeHTML - ein Anti-XSS-HTML-Parser, geschrieben in PHP

Aktie

Leave A Comment