Einfache single-user-login-Seite
Angenommen, ich wollte eine super einfache Seite mit eingeschränktem Zugriff in php für einen einzelnen Benutzer. Vorausgesetzt, dass der autorisierte Benutzer kennt das Verzeichnis und die url der Seite, konnte er nur pass manuell einen Benutzernamen und ein Passwort (dass er wissen würde) durch die get
- Methode in der url-Leiste, und überprüfen Sie es automatisch gegen ein Skript, das die Werte für den Benutzernamen und das Passwort wäre hardcoded in? Das Skript hat einen if statement
, die, wenn nicht wahr, würde nicht den Inhalt anzuzeigen. Was für Fehler könnten es sein?
Url
http://example.com/admin.php?user=admin&password=1324
admin.php
<?php if($_GET['user'] == 'admin' && $_GET['password'] == '1324')){
//display content here
}else{
echo "You're not authorized to visit this page";
} ?>
Szenario 2: die post
Methode
Ähnelt dem oben beschriebenen Szenario, in das man die autorisierten Benutzer geben Sie den Benutzernamen, das Kennwort in einer form, die würde verarbeitet werden, bei der eigentlichen admin.php
- Datei. Eine ähnliche if statement
verwendet werden würde, mit der $_POST[]
superglobals dieser Zeit der Eingang zu überprüfen.
<?php if($_POST['user'] == 'admin' && $_POST['password'] == '1324'){
//display content here
}else{
echo "You're not authorized to visit this page";
} ?>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beide haben Ihre Mängel.
Wenn Sie Methode 1 verwenden, werden Sie am Ende mit der Variablen übergeben wird, um die header gespeichert, in der Versionsgeschichte der Seite, bedeutet, dass jeder mit Zugriff auf den PC können nur durch suchen und finden, damit Sie sich Zugang in den Prozess. Suchmaschinen können auch abholen und speichern Sie sich den link, so dass es offen für die Welt.
Wenn Sie Methode 2 verwenden, müssen Sie Sie erneut senden der POST-Daten jedes einzelne mal, wenn Sie auf eine sichere Seite, was bedeutet, Sie am Ende mit einem Durcheinander von Tasten und Formen, wo links hätte gereicht. Es hat jedoch auch entfernen, die die Probleme der ersten Methode.
Eine bessere Methode, um diese beiden wäre die Verwendung der $_SESSION-variable. Das es grundsätzlich ermöglicht, die Daten werden serverseitig gespeichert, so dass der Benutzer einen "Schlüssel", die verwendet werden können, um den Zugriff auf die Daten - diese Taste wird in cookies gespeichert, standardmäßig.
Beispiel wäre:
Die Vorteile sind:
$_SESSION[]
würde nicht hier eine Rolle spielen, da die Daten gesendet werden, nur einmal pro login (also wenn der Benutzer verlässt die eingeschränkte Seite, er würde gehen durch die form wieder). Das Szenario ist vereinfacht, am besten. Allerdings würde ich nicht auch denke, dass die Implementierung eines solchen Systems. Diese Frage tauchte aus einfach aus Neugier.Kann es ja auch, mit
GET
,POST
bestehen aus einem Formular. Es ist nicht ein sicherer Weg, weil von vielen Gründen.Aber ja, Ihr braucht es übergeben werden kann, mit
GET
. Mit einer einzigen URL, kann er springen im Sperrgebiet.BTW, wenn Sie schauen für Benutzername und Passwort:
können Sie ausschließen, dass der Letzte Teil, weil Sie bereits die überprüfung anhand von Daten
POST
Gefahren, das so gut mit?captcha's
für es und es ist am besten gesichert, nicht eine einzige website verwendetGET
login-Daten.Sowas
Es kann aufgerufen werden, indem Sie
http://username:[email protected]