Witam,
takich tematów jak i artykułów w sieci jest całe mnóstwo, jednak ja napisałem sobie swój, posiłkując się informacjami na temat bezpieczeństwa z wikipedii (http://pl.wikibooks.org/wiki/PHP/Sesje). Zatem chciałbym Was prosić o sprawdzenie czy ten skrypt do logowania dla admina jest, nie tyle czy poprawnie napisany (w sensie czy działający - bo działa), ale czy sensownie napisany, bo np. linijka gdzie jest:
if( isset( $_GET['out'] ) ) {
session_destroy();
session_start();
}
trochę chyba głupio wygląda, ale możliwe, że to dobre rozwiązanie, dlatego chcę Was, bardziej doświadczonych, zapytać. Cały kod:
<?php
session_start();
if( isset( $_GET['out'] ) ) {
session_destroy();
session_start();
}
if( !isset( $_SESSION['user'] ) ) {
session_regenerate_id();
$_SESSION['user'] = 0;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
} else {
if( isset( $_POST['done'] ) ) {
$login = $_POST['login'];
$password = md5( $_POST['password'] );
if( $login == "admin" && $password == "d41c6925bd8ff4b4c41d5b0ffd9a8253" )
$_SESSION['user'] = 1;
}
}
if( $_SESSION['ip'] != $_SERVER['REMOTE_ADDR'] ) {
die( 'Proba przejecia sesji!' );
}
echo '<html><head><title>Welcome</title>
<link rel="stylesheet" type="text/css" href="astyles.css"></head>
<body id="panel">';
if( $_SESSION['user'] == 1 ) {
echo 'Logged as admin';
echo '<br><a href="admin.php?out=">log out</a>';
// tutaj jakis include...
} else {
echo '<br><form action="admin.php" method="post">
<span class="txt">Login:</span><br><input class="input" type="text" name="login">
<br><span class="txt">Password:</span><br><input class="input" type="password" name="password">
<input type="hidden" name="done">
<br><br><input class="input" type="submit" value="Log in">';
}
echo '</form></body></html>';
?>
Pozdrawiam i dziękuję za Wasz poświęcony czas.