Dennis: Slideshow in PHP

Beitrag lesen

Hi Olaf,

$verzeichnis = $_GET["serie"];

Diese Zeile bereitet mir schon beim bloßen Anschauen starke Kopfschmerzen!

$ordner=opendir ($verzeichnis);

Und diese Zeile bestätigt dann meine Kopfschmerzen - du arbeitest einfach so mit ungeprüften, durch den User gewählten Werten im Dateisystem! Was wenn ich dein Script jetzt mit ?serie=/etc/ aufrufe?

Du magst jetzt vielleicht argumentieren, dass dein Script ja keinen Inhalt von irgendwelchen Dateien ausgibt und somit harmlos wäre - und ich stimme dir auch zu, dass dies keine direkte Sicherheitslücke ist, aber immerhin zeigt mir dein Script den Verzeichnisinhalt eines beliebigen Ordners auf dem Server (auf den dein Benutzer Zugriff hat) an.

Und das lässt sich als eine gute Grundlage für weitere Hackangriffe nutzen - so kann ich z.B. schaue, ob du irgendwo irgendwelche Konfigurationsdateien liegen hast und wie diese heißen und muss dann lediglic noch eine andere Lücke irgendwo finden, wie ich mir die Dateien anzeigen lassen kann.

Kurz um: Prüfe diesen Wert, bevor du ihn verarbeitest!

echo "
var aktuell=0, ende=$by-1;

for(r=1; r < $by; r++) {
Animation[r]=new Image(); Animation[r].src=bild[r];
}

function blaettern(richtung) {
if (aktuell+richtung >= 1 && aktuell+richtung <= ende) aktuell += richtung;
document.images.dummy.src=Animation[aktuell].src;
}
</script>
";

Des weiteren finde ich sollte Echo-Passagen schrecklich, da diese total unübersichtlich wirken - es gibt zwei Alternativen:

echo "Text, Text, Text\n"  
    ."Text, $variable, Text\n"  
    ."Text, und Ende\n";

Oder - hier vermutlich eher sinnvoller:

?>  
[code lang=html]Text, Text, Text  
Text, 
~~~<?php echo $variable; ?>~~~html
, Text  
Text, und Ende  

~~~<?php[/code]  
  
  
MfG, Dennis.

-- 
Mein [SelfCode](http://community.de.selfhtml.org/fanprojekte/selfcode.htm): [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)  
[Patch zur Verwendung von PATHINFO in JLog](http://www.gymnasium-odenthal.de/~dennis/jlog/PATHINFO-Fix-1.0.1/)  
  
Was ich genau weiß, ist, dass es keinen Sinn hat darüber nachzudenken. Male dir neunundneunzig Variationen aus und du stolperst in Szenario Nummer hundert. (Andreas Steinhöffel, Die Mitte der Welt)