phpbar.de logo

Mailinglisten-Archive

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

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

Roland Tapken php_(at)_phpcenter.de
Thu, 10 Oct 2002 23:20:56 +0200


Hi!

> Das ist ja in der Theorie sicher sehr interessant, jedoch n�tzt mir
> die Authentizit�t der Verbindung nicht sehr viel, da 1. die Site frei
> zug�nglich ist und 2. sich die Authentizit�t auf eine IP-Adresse
> beschr�nkt. Ein XCC Angriff kann auf JEDER Seite erfolgen (Bsp:
> http://target.de?was=<=<scri*pt>JavaScript:alert('document.cookie');</scri*p
> t> )!

Also so wie ich dich verstehe bef�rchtest du, dass jemand Variabeln
deinen Scriptes ver�ndern k�nnte? Schonmal daran gedacht,
register_globals = off in der php.ini bzw. .htaccess zu setzen? Dann
kann man von au�en keine globalen Variablen mehr ver�ndern, sondern nur
noch solche in den $_REQUEST, $_GET, $_POST, etc-Arrays. Und dort kann
man dann ganz bequem von Fall zu fall (je nach Anwendung) eine
Plausibilit�tspr�fung machen.

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:

foreach ($_POST AS $key => $val) {
    if (${$key} == $val) {
        unset (${$key});
    }
}
foreach ($_GET AS $key => $val) {
    if (${$key} == $val) {
        unset (${$key});
    }
}
foreach ($_COOKIE AS $key => $val) {
    if (${$key} == $val) {
        unset (${$key});
    }
}

Diese Schleifen l�schen globale Variabeln wenn ihr Inhalt mit den von
au�en �bermittelten Variablen identisch ist.


cu, Roland Tapken
-- 
Please reply to:  tapken_(at)_engter.de
> I spent a minute looking at my own code by accident.
> I was thinking "What the hell is this guy doing?"


php::bar PHP Wiki   -   Listenarchive