cookielose Authentifizierung in php5
-
13-09-2020 - |
Frage
In meiner PHP-Anwendung habe ich Benutzername & Pwd verwendet und die Benutzertabelle in der Datenbank überprüft, um die Gültigkeit der Benutzer zu überprüfen.Nachdem die Anmeldung erfolgreich war, habe ich die Anmeldeinformationen wie folgt in der Serversitzung gespeichert:
$_SESSION['username'] = $username;
$_SESSION['pwd'] = $pwd;
Und ich habe die Sitzung überprüft, um sicherzustellen, dass sich der Benutzer bereits angemeldet hat.Sie können den Code unten sehen:
if (empty($_SESSION['userId']))
header("Location: login.php");
Das Problem ist, wenn ich das Cookie im Browser deaktiviert habe, konnte ich keine andere Seite aufrufen, obwohl die Anmeldung erfolgreich war.Ich habe herausgefunden, dass die PHP-Sitzung das Cookie verwendet, um einige Werte im Browser zu speichern.Gibt es überhaupt eine cookielose Sitzung in PHP5?
Lösung
Ja, aber Sie müssen das anhängen sessid
oder sid
zu jedem Link.
Es wird hier ausführlich beschrieben:http://myles.eftos.id.au/blog/2005/11/26/cookie-less-sessions-in-php/
Sie müssen sich auch ändern php.ini
wie so: php_value session.use_trans_sid = 1
.
Andere Tipps
ja, aber Sie wollen nicht.In der Tat sollten Sie nur Cookie-basierte Sitzungen verwenden.Dies ist die Standardkonfiguration wie von PHP 5.3.Bitte lesen Sie auf Sitzungsfixierung für weitere Informationen.
Welche Umstände haben Sie, um zu zwingen, dass Benutzer Ihre Website ohne Cookies verwenden können?
ja, Sie können, indem Sie den generationspflichtigen Teilen ermöglichen.Es gibt jedoch dabei Sicherheitsbedenken.
Es ist allgemein angenommen, dass man, um sich anzumelden, ein Cookie akzeptieren muss.
Die andere Alternative besteht darin, die HTTP-Autorisierung anstelle von Sitzungen zu verwenden, obwohl dies auch Nachteile hat.
siehe Sitzungs-ID ().
Sie könnten eine Sitzungs-ID generieren und zu Ihren Links wie diesem hinzufügen
generasacodicetagpre.