PHP: Direkten Zugriff auf Seite verhindern?

1 Antwort

Ich weiß, dass man dazu Cookies

Nein.

bzw. Session-Cookies

Ja.

Aber gibt es da noch andere Wege?

Wenn ist nicht sicherheitsrelevant ist, bietet sich Folgendes an. Du schreibst Die login.php z. B. so:

<form action="home.php" method="post">
<input type="submit" name="login" value="login">
</form>

die erste Zeile in der home.php lautet

<?php
if(!isset($_POST['login'])) {
  header("Location: login.php");
  exit;
}
?>

Dann lässt sich die home.php nur dann aufrufen, wenn die Variable $_POST['login'] gesetzt ist. Das ist aber nicht annähernd sicher. Für ein sicheres Verfahren müssten weitere Daten (zum Beispiel Benutzername und Passwort) überprüft werden.

Alex


Computerneu1357 
Fragesteller
 24.04.2021, 14:11

Danke für die Antwort. Ich habe auf der login.php bereits eine Passwort-Abfrage mit einer Datenbank dahinter laufen, mit verschlüsselten Passwörtern (Hash+Salt), die bei einem Treffer in der Datenbank per header auf die home.php weiterleitet. Da ich einen direkten Zugriff auf home.php (ohne vorher auf der login-Seite gewesen zu sein) verhindern will, komme ich dann wohl nicht um Session-Cookies rum. *Seufz*

0
EinAlexander  24.04.2021, 15:59
@Computerneu1357
die bei einem Treffer in der Datenbank per header auf die home.php weiterleitet.

Das ist das falsche Vorgehen. Besser ist, Du kontrollierst User und PW erst auf der home.php und lieferst für dann die Seite aus, wenn User und Passwort zusammenpassen.

Dafür kannst Du $_POST Variablen verwenden. Das ist sicher

0