Originariamente inviato da Flaquiz
qualcosa di elementare ma molto sicuro?
NO!
le cose elementari difficilmente saranno molto sicure... però occorre dire che il livello di protezione deve essere proporzionato a ciò che devi proteggere.
Su questo forum mi dissero: "E' inutile costruire un bunker se poi devi custodire una casetta con gli attrezzi... in questi casi basta un buon lucchetto..."
Pertanto io modificherei lo script proposto da te in questo modo...
setting.php
Codice PHP:
<?php
/*rimuovendo i commenti...*/
/*era solo per spiegare lo script*/
$username_hash = '831a427b0f389a1ee75624d6afee791c'; // md5('oly1982')
$password_hash = '5f4dcc3b5aa765d61d8327deb882cf99'; // md5('passowrd')
?>
login.php
Codice PHP:
<form method="post" action="login.php">
Username
<input type="text" name="username">
Password
<input type="password" name="password">
<input type="submit" name="login" value="Login">
</form>
<?php
if ($_POST["login"] != "")
{
sleep(5); // protezione rozza (ma efficace) dai brute force
require('setting.php');
$username = md5($_POST["username"]);
$password = md5($_POST["password"]);
if ($username == $username_hash && $password == $password_hash)
{
$timestamp_di_oggi = mktime(0, 0, 0, date('n'), date('j'), date('Y'));
setcookie("login", md5($timestamp_di_oggi.$password_hash));
echo "Benvenuto!
";
echo "[url='privata.php']ENTRA[/url]";
}
else
{
echo "Accesso negato!";
}
}
?>
privata.php
Codice PHP:
<?php
require('setting.php');
if(isset($_COOKIE['login']))
{
$timestamp_di_oggi = mktime(0, 0, 0, date('n'), date('j'), date('Y'));
if($_COOKIE['login']!=md5($timestamp_di_oggi.$password_hash))
{
exit("Accesso negato!");
}
}
else
{
exit("Accesso negato!");
}
?>
sia ben chiaro non è il massimo della sicurezza ma è un mediocre sistema per proteggere qualche pagina...