Хочу узнать уязвимые места скрипта авторизации и как его можно доработать, что добавить. Прошу мне помочь в этом. Заранее спасибо!
function secureInput($var)
{
$output = '';
if (is_array($var)){
foreach($var as $key=>$val){
$output[$key] = $val;
}
} else {
$var = htmlspecialchars(stripslashes(strip_tags(trim($var))));
if (function_exists("get_magic_quotes_gpc")) {
$output = mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($var) : $var);
} else {
$output = mysql_real_escape_string($var);
}
}
if (!empty($output))
return $output;
}
if(isset($_POST['submit_auth']))
{
if ( securiInput($_POST['submit_auth'])) {
if (validateEmail($_POST['email'])) { $email = $_POST['email']; } else { die ("Неверно введен е-mail! <a href=\"javascript:history.back()\">Назад</a>"); }
if (validateLogin($_POST['login'])) { $login = $_POST['login']; } else { die ("Логин не соответствует символам");
if (validatePassword($_POST['passw'])) { $pass = $_POST['passw']; } else { die ("Логин не соответствует символам");
if (strlen($login) < 3 or strlen($login) > 30) { die ("Логин должен быть не меньше 3-х символов и не больше 30");
if (strlen($passw) < 6 or strlen($passw) > 30) { die ("Пароль должен быть не меньше 6-х символов и не больше 30");
if (strlen($email) < 6 or strlen($email) > 30) { die ("Пароль должен быть не меньше 6-х символов и не больше 30");
$query = mysql_query("SELECT login, passw FROM users WHERE user_login='".$login."' LIMIT 1");
$data = mysql_fetch_assoc($query);
if( $data ['user_passw'] === md5(md5($passw)))
{
$hash = md5(generateCode(10));
mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");
session_start();
$_SESSION['user_id'] = $user_id;
$_SESSION['logged_in'] = TRUE;
}
else
{
print "Вы ввели неправильный логин/пароль";
}
}
}