[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт авторизации
Страницы: 1, 2
vodolei2150
Хочу узнать уязвимые места скрипта авторизации и как его можно доработать, что добавить. Прошу мне помочь в этом. Заранее спасибо!

// Безопасный ввод
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));

# Записываем в БД новый хеш авторизации и IP
mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");

session_start();

//set the sessions
$_SESSION['user_id'] = $user_id;
$_SESSION['logged_in'] = TRUE;

}
else
{
print "Вы ввели неправильный логин/пароль";
}
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.