Nice to Know

XSS met PHP_SELF voorkomen

Categorie: PHP & MySQL » PHP voor beginners door Onbekend lid op 31-10-2005

Velen gebruiken de voorgedefinieerde variabele $_SERVER['PHP_SELF'] in hun scripts om bijvoorbeeld te gebruiken voor het "action"-attribuut van een formulier. Wat velen echter niet weten is dat deze variabele, wanneer ruw gebruikt wordt, kan zorgen voor een XSS-vulnerability.

Elke URL kan een pad bevatten die volgt na de bestandsnaam in een URL. Nemen we de URL http://localhost/foo.php. De URL http://localhost/foo.php/bar/ bevat een extra padnaam terwijl het script blijft werken. Wanneer PHP_SELF onbeveiligd wordt gebruikt kan een URL zoals http://localhost/foo.php/<script>alert('bar')</script> zorgen voor een XSS-aanval omdat de HTML-tags zullen worden uitgevoerd. Het pad wordt immers meegestuurd in de waarde van PHP_SELF.

Dit is eenvoudig op te lossen door de waarde van PHP_SELF eerst te coderen:

$_SERVER['PHP_SELF'] = urlencode($_SERVER['PHP_SELF']);

Nota: niet alle systemen zijn kwetsbaar voor deze aanval. Bepaalde systemen met magic_quotes zullen de quotes escapen waardoor sommige statements in Javascript niet uitgevoerd kunnen worden.

« Terug
4 reacties
pds_ Geplaatst op 23-08-2006 om 21:32
 

Regular
print het dan:P
Itsme-HcK Geplaatst op 19-11-2005 om 21:38
Avatar van Itsme-HcK

Regular
Dat is natuurlijk alleen als je 't echo't. :)
Grubolsch Geplaatst op 01-11-2005 om 18:45
 

Moderator
Boeiend, wist ik nog niet.
ElBaknifico Geplaatst op 31-10-2005 om 22:07
Avatar van ElBaknifico

Moderator
handig :)

Pagina 1 

Om te reageren moet je ingelogd zijn.
Nog niet geregistreerd? Doe dat dan nu!


Terug naar gewone pagina

Websitemaken wordt gehost door Nucleus.be, uw Hosting Solution Builder