Überprüfen von GET-Variablen

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Es gibt da schon lange Zeit eine Sache die mich verwirrt:

Nehmen wir mal an, der Adminbereich einer Seite soll geladen werden, wenn an die URL ?admin=irgendeinpw angehängt wird.

Ich löse das dann immer auf folgende Art und Weise:
PHP:
if ($_GET['admin'] == 'irgendeinpw') { }
Tutorials und Bücher machen das allerdings immer so:
PHP:
if (isset($_GET['admin']) AND $_GET['admin'] == 'irgendeinpw') { }
Das ist doch überflüssig, oder? Ich meine, ich prüfe, ob admin = irgendeinpw ist. Und das setzt ja schon voraus, dass GET[admin] existiert.
Wieso findet man dann oft in Büchern/Internet, dass zusätzlich noch geprüft wird, ob GET[admin] existiert (Das beweist ja schon die andere Abfrage)?
Gibt es eine Sicherheitslücke bei "meiner Methode" oder wieso findet man immer die andere?
(irgendeinen Grund muss es ja geben das immer die andere benutzt wird ;) )
 
Wahrscheinlich steht die 2. Variante in den Büchern, weil sie keine Fehlermeldung ausgibt, falls $_GET['admin'] nicht existiert(vorrausgesetzt, error_reporting(E_ALL) ist verwendet). Ansonsten unterscheiden sich die Varianten nicht, auch wenn ich sie nicht benutzen würde, weil man das Passwort direkt in der URL sieht^^
MfG david
 
ich benutz es ja nich für zugangsberechtigungen. das war nur n bsp...
aber okay, danke. dann weiß ich ja jetzt bescheid:)
ich kann dann ja einfach die erste weiterverwenden, denn n fehler gibts nich.
(höchstens ne notice...)
 
Jo, genau, Notice mein ich, nicht Fehler^^
habe jetzt nur an das error_reporting(E_ALL) gedacht :D
 
Zurück
Oben