Hallo alle zusammen,
ich habe eine allgemeine Frage zur Arbeiten mit Sessions.
Situation:
ich habe die Dateien index.php (Datei mit Login-Feld) und enter.php (Datei an die die Infos übermittelt werden; Prüft ob Zugang erlaubt).
Die Datei enter.php eröffnet eine Session und Prüft, ob Name und Passwort stimmen ($_POST[..] == richtig); ist dies der Fall werden beide Infos in der Session hinterlegt.
Nun zum Problem:
Sowohl im Internet als auch in meinem Tutorial habe ich nun folgenden Code gefunden, um zu test, ob man sich gerade in der Session befinden (also ob man sich angemeldet hat).
Dies wird in jede Datei geschrieben (um nicht auf direktem Weg, ohne sich anzumelden auf die Seite gelangt)
Warum reicht dies aus, um zu überprüfen, ob der Benutzer sich wirklich zuvor angemeldet hat mit richtigem Namen und Passwort?
Ist es nicht möglich, dass jemand auf seinem Localhost das Feld $_Session["n"] anlegt (über eigenes Programm) und dann (ohne sich anzumelden) direkt enter.php aufruft.
Wäre das Programm dann nicht getäuscht?
EDIT: Was wäre wenn $_SESSION["n"] bereits durch eine anderer Website (wenn der User auf verschiedenen Seiten gleichzeitig surft) erzeugt wurde?
Ich bin um jeden Rat dankbar.
ich habe eine allgemeine Frage zur Arbeiten mit Sessions.
Situation:
ich habe die Dateien index.php (Datei mit Login-Feld) und enter.php (Datei an die die Infos übermittelt werden; Prüft ob Zugang erlaubt).
Die Datei enter.php eröffnet eine Session und Prüft, ob Name und Passwort stimmen ($_POST[..] == richtig); ist dies der Fall werden beide Infos in der Session hinterlegt.
Nun zum Problem:
Sowohl im Internet als auch in meinem Tutorial habe ich nun folgenden Code gefunden, um zu test, ob man sich gerade in der Session befinden (also ob man sich angemeldet hat).
Dies wird in jede Datei geschrieben (um nicht auf direktem Weg, ohne sich anzumelden auf die Seite gelangt)
PHP-Code:
<?php
/* Kontrolle, ob innerhalb der Session */
if (!isset($_SESSION["n"]))
{
echo "Kein Zugang<p>";
echo "<a href='aktuell.php'>Zum Login</a>";
echo "</body></html>",
exit;
}
?>
Ist es nicht möglich, dass jemand auf seinem Localhost das Feld $_Session["n"] anlegt (über eigenes Programm) und dann (ohne sich anzumelden) direkt enter.php aufruft.
Wäre das Programm dann nicht getäuscht?
EDIT: Was wäre wenn $_SESSION["n"] bereits durch eine anderer Website (wenn der User auf verschiedenen Seiten gleichzeitig surft) erzeugt wurde?
Ich bin um jeden Rat dankbar.
Kommentar