Gevonden op nl.php.net.

Predefined Variables
New York PHP
24-Jul-2005 03:59
Warning: $_SERVER['PHP_SELF'] can include arbitrary user input. The documentation should be updated to reflect this.

The request "http://example.com/info.php/attack%20here" will run /info.php, but in Apache $_SERVER['PHP_SELF'] will equal "/info.php/attack here". This is a feature, but it means that PHP_SELF must be treated as user input.

The attack string could contain urlencoded HTML and JavaScript (cross-site scripting) or it could contain urlencoded linebreaks (HTTP response-splitting).

The use of $_SERVER['SCRIPT_NAME'] is recommended instead.

Edit: Sorry, moest in de koffiehoek. (Misschien komt het wel omdat ik geen koffie lust)
Mmm, leuke feature. Kan je dus gaan spelen zonder mod_rewrite. Hadden ze inderdaad wel even mogen documenteren.

Ook een leuk gat btw. Hoeveel sites zou je hier mee kunnen 'openen'?
Veel denk ik. Ik heb nooit veel php_self gebruikt.
Ik deed(doe) altijd
<?
print "<a href=\"index.php?page=mii\">Mii</a>";
?>

in plaats van
<?
print "<a href=\"".$_SERVER['PHP_SELF']."?page=mii\">Mii</a>";
?>


Maar toch. Het is wel een interresant gat. Trouwens, zijn jullie al klaar met nadenken? :P
Mja, ik gebruik PHP_SELF eigenlijk enkel als action in formulieren. Vraag me af of het dan ook zo schadelijk is :P
Zolang het niet voorkomt in uitgevoerde code (lees: eval() en vergelijkbare functies) en MySQL queries (MySQL injectie) lijkt er mij niet zo veel gevaar...
Als je gewoon zorgt dat ze je site niet wille hacken gebeurd er niks ^^.
makkelijk praten :)
Jelmer schreef op 26.07.2005 21:21
Zolang het niet voorkomt in uitgevoerde code (lees: eval() en vergelijkbare functies) en MySQL queries (MySQL injectie) lijkt er mij niet zo veel gevaar...

Precies.

Reageren