Alfred: Sicherheit

Beitrag lesen

Hallöchen,

aufmerksam geworden durch

[pref:t=71856&m=413780]

hab ich da mal folgende Frage:

Ich lasse mir meine Seiten per php aus einzelnen htm-Fetzen zusammenbauen und hänge die dazu notwendigen Parameter frank und frei an die jeweiligen links an, also z.B.

<a href=show.php?q=0001 0002 0003>link</a>".

Das php-Skript ergänzt die Parameter (letztlich sind es natürlich Dateinamen) um ".htm", holt sich die einzelnen htm-Fetzen aus einem Unterverzeichnis und spuckt sie per "include" wieder aus. Beispielhaft:

<?php
$files = $_GET['q'];
$files = split("[ ]",$files);
$anz = count($files);

for ($i=0; $i<$anz; $i++){$files[$i] = "./unterverzeichnis/".$files[$i].".htm";}

foreach($files as $a){include($a);}
?>

Was anderes wäre es natürlich wenn es z.B. hieße

<?php
$files = $_GET['q'];
include ($files);
?>

da könnte ja ein Bösewicht eine fremde URL anhängen und das Script mit dieser aufrufen.

Jetzt also die Frage :

Ist die obige Variante auch so grob fahrlässig wie die untere? Wenn ja was habe ich dann nicht verstanden? Das Script tut doch nichts anderes als aus einem serverseitigem Unterverzeichnis htm-Code zusammenzubasteln und zu verschicken. Parameter mit denen das Script nichts anfangen kann dürften doch auch keinen Schaden anrichten, außer einer Fehlermeldung vielleicht...

Oder ?

Beste Grüsse,

Alfred