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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: кто-то обошел процедуру регистрации
 
 автор: irr   (25.10.2005 в 16:06)   письмо автору
 
 

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


$lgn=$_POST['lgn'];
$pwd=$_POST['pwd'];
$pwd2=$_POST['pwd2'];

if (empty($lgn) or empty($pwd) or empty($pwd2)) { // скрипт отказа, exit };

if ($pwd!=$pwd2) { // скрипт отказа, exit };

$query="SELECT login FROM users WHERE login='$lgn' LIMIT 1";
$result=mysql_query($query);
$check=mysql_num_rows($result);

if ($check!=0) { // скрипт отказа, exit };

// регистрация:

$query="INSERT INTO users SET login='$lgn', password='$pwd'" ;
$result=mysql_query($query);

если переменная $lgn была пустая, то должен был сработать отказ, а он не сработал! подскажите, пожалуйста, где тут собака зарыта?

и еще, хотелось бы найти скрипт, который бы проверял логин на содержание нежелательных символов, таких как < > = & и т.д. если у кого-то есть ссылка - поделитесь, пожалуйста!

   
 
 автор: Artem S.   (25.10.2005 в 16:17)   письмо автору
 
   для: irr   (25.10.2005 в 16:06)
 

Ну можно передать "невидимый символ", ту же тарбуляцию

   
 
 автор: irr   (25.10.2005 в 17:37)   письмо автору
 
   для: Artem S.   (25.10.2005 в 16:17)
 

в том-то и дело, что никакого символа там нет!

   
 
 автор: cheops   (25.10.2005 в 18:40)   письмо автору
 
   для: irr   (25.10.2005 в 17:37)
 

А что из себя представляет
// скрипт отказа, exit

   
 
 автор: irr   (25.10.2005 в 19:27)   письмо автору
 
   для: cheops   (25.10.2005 в 18:40)
 


{$errreg="Текст ошибки.";
$_SESSION['errreg']=$errreg;
header("Location: reguser.php");
mysql_close($db);
exit;

вряд ли дело в нем.

   
 
 автор: Loki   (25.10.2005 в 16:58)   письмо автору
 
   для: irr   (25.10.2005 в 16:06)
 

Возможно, использовалось что-то типа

'/*

У вас же нет защиты от инъекционных запросов.

   
 
 автор: multiBrain   (25.10.2005 в 17:16)   письмо автору
 
   для: Loki   (25.10.2005 в 16:58)
 

>У вас же нет защиты от инъекционных запросов.
Это что еще такое за инъекционные запросы???

   
 
 автор: cheops   (25.10.2005 в 17:35)   письмо автору
 
   для: multiBrain   (25.10.2005 в 17:16)
 

Об них можно почитать в статье по ссылке http://www.softtime.ru/info/articlephp.php?id_article=35 - через элементы которые передаются от пользователя непосредственно в SQL-запрос можно так изменить запрос, что будет выдавать пароль и пропускать вас без авторизации и т.п.

   
 
 автор: multiBrain   (25.10.2005 в 17:18)   письмо автору
 
   для: irr   (25.10.2005 в 16:06)
 

>и еще, хотелось бы найти скрипт, который бы проверял логин
>на содержание нежелательных символов, таких как &lt; &gt; =
>&amp; и т.д. если у кого-то есть ссылка - поделитесь,
>пожалуйста!
Регулярными выражениями ограничить: [a-zA-Z0-9]

   
 
 автор: irr   (25.10.2005 в 19:31)   письмо автору
 
   для: multiBrain   (25.10.2005 в 17:18)
 

спасибо за совет, включил регулярные выражения в код. надеюсь, это поможет.

   
 
 автор: OZ_   (25.10.2005 в 21:18)   письмо автору
 
   для: irr   (25.10.2005 в 19:31)
 

В любом случае обрабатывайте строку функцией addslashes. Регулярное выражение можно и с ошибкой составить, а addslashes не ошибётся.

   
Rambler's Top100
вверх

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