phpbar.de logo

Mailinglisten-Archive

[php] Cross-Site-Scripting (XSS) Schutz mit PHP

[php] Cross-Site-Scripting (XSS) Schutz mit PHP

Johannes Schlueter php_(at)_phpcenter.de
Fri, 11 Oct 2002 14:46:20 +0200


On 10 Oct 2002 at 23:20, Roland Tapken wrote:

> Wenn du register_globals nicht verändern kannst, dann gibt es einen
> kleinen Workaround:
>
> Am Anfang des Scriptes (d.h. bevor andere Teile des Scriptes
> irgendwelche Variablen setzen) folgende Schleife einbauen:
<snip>
> Diese Schleifen löschen globale Variabeln wenn ihr Inhalt mit den
> von außen übermittelten Variablen identisch ist.

Nun, wenn ich alle Variablen - bevor ich sie nutze - initalisiere
überschreibe ich die Variablen, die via GET/POST übergeben worden sind
noch bevor sie zum Einsatz kommen.

Variablen die vom User kommen ($_x) müssen natürlich entsprechend ihres
Anwendungszweckes geprüft werden. Wenn der Wert numerisch sein soll dann
schaue ich, ob er im zulässigen Intervall liegt (z.B. Größe des DB-
Feldes) wenn ich es wieder ausgeben will nutze ich (je nach genauem
Zweck) strip_tags/htmlentities/etc alles andere Überprüfe ich mit
RegExps. Solange dann kein Bug im PHP-Source ist sollte die Gefahren weg
sein. Alles über einen Kamm zu scheren macht, wie auch Johannn schon
sagte, imho keinen Sinn, da einige vcariablen zu intensiv geprüft werden
und andere (z.B. Zahlen, Strings mit bestimmter max Länge) zu wenig.

johannes


php::bar PHP Wiki   -   Listenarchive