|
|
|
|
|
для: Trianon
(10.04.2007 в 09:59)
| | >Этот способ недопустим.
>Вы видели хотя бы одну априори авторитетную систему, выдающую сообщение "Неверный пароль"? Такие сообщения выдаваться не должны.
Я написал пример определения ситуации. А выдавать или не выдавать, это не моё дело. Я, к примеру, при неверном пароле заношу IP-адрес в базу и, если в течение 15 минут совершается более 5 попыток входа с неверным паролем, IP добавляется в бан лист на полчаса. | |
|
|
|
|
|
|
|
для: Loki
(10.04.2007 в 11:58)
| | Тогда уж так: Ошибка в пароле: поменяйте местами третий и пятый символы. | |
|
|
|
|
|
|
|
для: Trianon
(10.04.2007 в 09:59)
| | Согласен! Авторитетная система должна говорить: "У вас ошибка в третьем и пятом символах пароля".
Честно-честно! Я в кино видел:) | |
|
|
|
|
|
|
|
для: 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;
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(09.04.2007 в 21:20)
| | Trianon , sms-send
Я писала грубый код, без предварительной обработки, скажем так, это попросту алгоритм... точно так же, как и во втором варианте не плохо было бы изначально написать:
Во втором варианте переменные сравниваются не в запросе к базе данных. Я вопрос задала потому, что может быть по незнанию что-то могла пропустить или еще как-то.. и может ли вообще такое быть, потому как я сама еще не все знаю... даже, скажем так, мало чего знаю, только и всего... на данный момент мне важна система безопасности системы при работе со вторым вариантом, по скольку при малом количесте потенциальных пользователей она мне кажется более защищенной даже без применения того, что вы перечислили. | |
|
|
|
|
|
|
|
для: 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));
| - вполне надёжно | |
|
|
|
|
|
|
|
для: La Estafa
(09.04.2007 в 16:31)
| | такой вариант работать не будет.
Почитайте про функции get_magic_quotes_gpc(), strip_slashes(), и mysql_escape_string().
Последняя используется для того, чтобы писать запросы, которые было бы в принципе невозможно подвергнуть SQL-инъекции. Первые две - к сожалению, они тоже нужны - для того, чтобы исправить ошибки тех, кто решил бороться с инъекциями методом крестовых походов. | |
|
|
|
|
|
|
|
для: RV
(09.04.2007 в 16:51)
| | RV , спасибки ) | |
|
|
|
|
|
|
|
для: La Estafa
(09.04.2007 в 16:46)
| | тогда сойдет | |
|
|
|
|