selberbauer
Captain
- Registriert
- Juni 2009
- Beiträge
- 3.604
Hallo,
ich möchte über eine Login Maske, bei Erfolg, auf den geheimen Bereich meiner Seite weitergeleitet werden. Dazu möchte ich sessions bzw. cookies verwenden. Das Problem ist allerdings, dass der geheime Bereich für Unbekannte trotzdem zugänglich ist und man so einfach das Login überspringen könnte:
login.php
secret.php
ich möchte über eine Login Maske, bei Erfolg, auf den geheimen Bereich meiner Seite weitergeleitet werden. Dazu möchte ich sessions bzw. cookies verwenden. Das Problem ist allerdings, dass der geheime Bereich für Unbekannte trotzdem zugänglich ist und man so einfach das Login überspringen könnte:
login.php
PHP:
<?php
session_cache_expire(10); // setzt den Session Verfall auf 10min.. funktioniert auch nicht
session_start();
$_SESSION['state'] = FALSE;
$_SESSION['time'] = date('m.d.Y H:i:s');
$_SESSION['key'] = hash('SHA512', 'foo'.$_SERVER['HTTP_USER_AGENT'].'bar');
if(isset($_POST['user'], $_POST['pass'])) {
// MySQL Teil
// Verbindung wird aufgebaut und mittels prepared statement
// Benutzer und Hash abgefragt und dann die Reihen ausgezählt
// Wenn eine Reihe herauskommt stimmt passwort und Benutzer
if($rows == 1) {
$_SESSION['state'] = TRUE;
header('secret.php');
}
}
?>
<html>...
secret.php
PHP:
<?php
if($_SESSION['state'] = FALSE OR $_SESSION['key'] != hash('SHA512', 'foo'.$_SERVER['HTTP_USER_AGENT'].'bar')) {
header('login.php);
exit();
}
?>
<html>....