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

Nog geen reacties

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