Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Авторизация и инъекции

Сообщения:  [1-10]   [11-13] 

 
 автор: sms-send   (11.04.2007 в 22:42)   письмо автору
 
   для: Trianon   (10.04.2007 в 09:59)
 

>Этот способ недопустим.
>Вы видели хотя бы одну априори авторитетную систему, выдающую сообщение "Неверный пароль"? Такие сообщения выдаваться не должны.

Я написал пример определения ситуации. А выдавать или не выдавать, это не моё дело. Я, к примеру, при неверном пароле заношу IP-адрес в базу и, если в течение 15 минут совершается более 5 попыток входа с неверным паролем, IP добавляется в бан лист на полчаса.

   
 
 автор: Trianon   (10.04.2007 в 12:16)   письмо автору
 
   для: Loki   (10.04.2007 в 11:58)
 

Тогда уж так: Ошибка в пароле: поменяйте местами третий и пятый символы.

   
 
 автор: Loki   (10.04.2007 в 11:58)   письмо автору
 
   для: Trianon   (10.04.2007 в 09:59)
 

Согласен! Авторитетная система должна говорить: "У вас ошибка в третьем и пятом символах пароля".
Честно-честно! Я в кино видел:)

   
 
 автор: Trianon   (10.04.2007 в 09:59)   письмо автору
 
   для: sms-send   (10.04.2007 в 03:51)
 

Этот способ недопустим.
Вы видели хотя бы одну априори авторитетную систему, выдающую сообщение "Неверный пароль"? Такие сообщения выдаваться не должны.

   
 
 автор: sms-send   (10.04.2007 в 03:51)   письмо автору
 
   для: sms-send   (10.04.2007 в 00:38)
 

>при работе со вторым вариантом, по скольку при малом количесте потенциальных пользователей она мне кажется более защищенной даже без применения того, что вы перечислили.
Только кажется. Есть способы гораздо проще и функциональней, при этом, не уступающие в защищённости:
<?php
function check_login($login,$password){
        
$q=mysql_query('SELECT `password` FROM `userlist` WHERE `user`="'.mysql_escape_string($login).'" LIMIT 1;');
        if(
mysql_num_rows($q)==0)return 'Нет такого пользователя.';
        if(
mysql_result($q,0)!==$password)return 'Неверный пароль.';
        return 
'Авторизация прошла успешно.';
}
$message=check_login($login,$password);
echo 
$message;
?>

   
 
 автор: La Estafa   (10.04.2007 в 01:21)   письмо автору
 
   для: Trianon   (09.04.2007 в 21:20)
 

Trianon , sms-send
Я писала грубый код, без предварительной обработки, скажем так, это попросту алгоритм... точно так же, как и во втором варианте не плохо было бы изначально написать:

unset $user_access;

Во втором варианте переменные сравниваются не в запросе к базе данных. Я вопрос задала потому, что может быть по незнанию что-то могла пропустить или еще как-то.. и может ли вообще такое быть, потому как я сама еще не все знаю... даже, скажем так, мало чего знаю, только и всего... на данный момент мне важна система безопасности системы при работе со вторым вариантом, по скольку при малом количесте потенциальных пользователей она мне кажется более защищенной даже без применения того, что вы перечислили.

   
 
 автор: sms-send   (10.04.2007 в 00:38)   письмо автору
 
   для: La Estafa   (09.04.2007 в 16:31)
 

Другими словами

mysql_query('SELECT user, password FROM userlist  WHERE user = '.mysql_escape_string($login).'  AND password = '.mysql_escape_string($password));
- вполне надёжно

   
 
 автор: Trianon   (09.04.2007 в 21:20)   письмо автору
 
   для: La Estafa   (09.04.2007 в 16:31)
 

такой вариант работать не будет.
Почитайте про функции get_magic_quotes_gpc(), strip_slashes(), и mysql_escape_string().
Последняя используется для того, чтобы писать запросы, которые было бы в принципе невозможно подвергнуть SQL-инъекции. Первые две - к сожалению, они тоже нужны - для того, чтобы исправить ошибки тех, кто решил бороться с инъекциями методом крестовых походов.

   
 
 автор: La Estafa   (09.04.2007 в 17:16)   письмо автору
 
   для: RV   (09.04.2007 в 16:51)
 

RV , спасибки )

   
 
 автор: RV   (09.04.2007 в 16:51)   письмо автору
 
   для: La Estafa   (09.04.2007 в 16:46)
 

тогда сойдет

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования