Hallo, Am Samstag, 3. Mai 2003 13:54 schrieb Dogfish [Candid Dauth]: [ ... ]
Nein, das siehst du eher nicht richtig. Eben das ist nämlich die Sicherheitslücke. Nehmen wir ein Mal an, du hättest eine Seite, auf der man sich anmelden muss. Es gibt normale Benutzer und Administratoren. Und nun, stell dir vor, du würdest zum Beispiel im Script eine Variable nahmens $admin auf true setzen, wenn das Script feststellt, dass du als Administrator angemeldet bist. Und wenn du nicht als Administrator angemeldet bist, wird die Variable $admin garnicht erst gesetzt. Und jetzt ist beispielsweise register_globals auf on bzw. dein umgeschriebener Scriptschnipsel wird ausgeführt. Dann könnte jemand in der URL einfach den Parameter "admin" mit dem Wert "true" angeben, und er wäre als Administrator angemeldet. Und das ist die Sicherheitslücke, denn das war nur ein Beispiel. Auf manchen Seiten kann ein passwortloses Anmelden als Administrator gewaltige Schäden anrichten.
ACK, es geht hauptsächlichst um Sicherheistlücken in den eigenen Scripten.
Sicherlich, man kann natürlich so programmieren, dass es keine Möglichkeit gibt, über URL-Parameter irgend etwas Unerlaubtes im Script-Ablauf zu verändern, aber man kann ja oft nicht immer alle Variablen im Überblick behalten.
Jo, trotzdem empfiehlt es sich meiner Meinung nach sicherheitsrelevante Variablen am Anfang des Scriptes abzufragen. Ungefähr so: if($_GET[auth] == "true") { echo "Sie haben keine Berechtigung diesen Bereich zu betreten\n"; exit; } Es gibt für Angreifer nämlich auch evtl. die Möglichkeit eine .htaccess auf den Server zu laden, die die Einstellungen ausser Kraft setzt: php_flag register_globals On Diese Zeile in einer .htaccess würde register_globals für das gesamte Verzeichnis samt Unterverzeichnissen auf on setzen. Willkommen im Haifischbecken ;-) CU Martin ############################ Nur weil du paranoid bist, heisst es nicht, dass sie nicht hinter dir her sind ############################