kaziuVBC napisał(a)
Witam, mam kilka pytań odnośnie bezpieczeństwa logowania.
-
Czy jeśli po wpisaniu błędnych danych do skryptu logowania, będę przenosił usera na stronę logowania z użyciem header() to on nie ma możliwości obejrzenia tej strony zobezpieczonej?
-
Zabezpieczam skrypt logowania następującymi metodami:
*mysql_real_escape string(),
*5 prób logowania na godzinę,
*filtrowanie logina i hasła wyrażeniami regularnymi
*htmlspecialchars(), strip_tags(), addslashes().
Czy jest jakaś możliwość włamania się do serwisu nie znając loginu i hasła?
3.Po co programiści wpisują slashe przed cudzysłowiami w formularzach? Np.
<form action=\"index.php\" method=\"POST\">
Jeśli po header() dasz exit(), to nic się nie wykona po przekierowaniu go gdzie indziej.
//...
if ($abc == FALSE) {
header('Location: zle_haslo.php');
}
echo('TAJNE DANEEEE');
To jest potencjalnie niebezpieczne.
//...
if ($abc == FALSE) {
header('Location: zle_haslo.php');
exit();
}
echo('TAJNE DANEEEE');
To już nie.
Ogólnie jeśli filtrujesz login i hasło REGEXPem, to to wystarczy. Nie ma sensu tracić czasu wykonywania na dodatkowe addslashes(), striptags() itp... Chociaż mysql_real_escape_string() można używać wszędzie, dla zapewnienia spokoju na duszy ;]
bordeux napisał(a)
- Oo, byc moze daja przed cudzyslmwami slashe, by osadzic kod w zmienej w php:
$zmiena = "<form action=\"index.php\" method=\"POST\">";
Aczkolwiek ten sposób jest badziewny, lepiej po prostu użyć:
$zmienna = '<form action="index.php" method="POST">';
Albo:
$zmienna = <<<HTML
<form action="index.php" method="POST">
HTML;