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

Форум PHP

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

 

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

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

тема: Методы борьбы с автозаполнением регистрационных форм.
 
 автор: NickCo   (26.04.2006 в 09:07)   письмо автору
 
 

Собственно это и есть вопрос, подскажите, как это обычно делается(автозаполнение имеется в виду)? И еще вопросик по session, чем грозит в плане безопасности не уничтожение сессии. Т.е. после нажатия пользователем кнопки выйти сессия не уничтожается, а просто абнуляются значения ее переменных? также вопрос по MD5 шифрованию: шифрование для одного и тогоже слова выдает разные результаты в разные моменты поступления переменной в функцию MD5, или одинаковые?

   
 
 автор: Loki   (26.04.2006 в 11:17)   письмо автору
 
   для: NickCo   (26.04.2006 в 09:07)
 

Если мы говоирм о спаммерах, то формы они не заполняют, а сразу отсылают данные обработчику.
При первом старте сессии ее номер передается через URL. Этим можно воспользоваться и, перехватив его, украсть сессию. Тут на сайте есть статья про это.

Результаты одинаковые. На этом и построены принципы авторизации с хэшированием пароля.

   
 
 автор: NickCo   (26.04.2006 в 11:21)   письмо автору
 
   для: Loki   (26.04.2006 в 11:17)
 

А насчет опасности, возникающей при неуничтожения сессии? Она есть потенциально, или нет?

   
 
 автор: Loki   (26.04.2006 в 11:56)   письмо автору
 
   для: NickCo   (26.04.2006 в 11:21)
 

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

   
 
 автор: NickCo   (26.04.2006 в 13:29)   письмо автору
 
   для: Loki   (26.04.2006 в 11:56)
 

Насколько я понимаю, это, если пользователь закрыл окно, при его открытии произойдет авторизация? А что такое флуд? И если можно укажите на недостатки системы авторизации в аттаче. Там почемуто с обработкой пароля функцией md5 не получается.

   
 
 автор: Loki   (26.04.2006 в 15:16)   письмо автору
 
   для: NickCo   (26.04.2006 в 13:29)
 

Нет. Окно пользователя не нужно. Достаточно идентификатора сессии.
Бегло просмотрел файл авторизации в запросе не должно быть никаких LIKE, только строгое соотвествие. Но это мелочь, основное то, что вы используете одинаковые имена переменных и для массива POST и для SESSION. На некоторых хостингах это вообще не заработает, на некоторых могут появится труднолокализуемые глюки. Но самое главное, вы оставляете злоумышленнику возможность ломать вас через GET.
Кроме того, логины модержащие спецсимволы, скорее всего будут отображаться неправильно.
Ну и кроме того, ваша авторизация уязвима для sql инъекций через GET и COOKIE
В общем, блок авторизации проще переписать сначала. Остальное смотреть не стал.

   
 
 автор: NickCo   (27.04.2006 в 12:12)   письмо автору
 
   для: Loki   (26.04.2006 в 15:16)
 

Если не сложно, киньте ссылочку, как ломаются сайты через GET и Coocki. Я не очень понял где конкретно дырки.

   
 
 автор: Loki   (28.04.2006 в 12:12)   письмо автору
 
   для: NickCo   (27.04.2006 в 12:12)
 

Дырка в том, что вы обрабатываете только $_POST['login'], а потом проверяете наличие $login. Так что если я передам значение login через GET, то оно пройдет мимо вашей обработки прямо в sql запрос.

   
 
 автор: NickCo   (28.04.2006 в 12:16)   письмо автору
 
   для: Loki   (28.04.2006 в 12:12)
 

Но ведь если register_globals = off то этого не должно произойти, ведь на это register_globals и нужна?

   
 
 автор: Loki   (28.04.2006 в 13:12)   письмо автору
 
   для: NickCo   (28.04.2006 в 12:16)
 

Прошу прощения. Я почему-то решил что у вас код под register globals on

   
 
 автор: Trianon   (28.04.2006 в 13:43)   письмо автору
 
   для: NickCo   (28.04.2006 в 12:16)
 

Оно конечно не должно, только переменную всё равно стоит инициализировать.
Тогда, если вдруг окажется применить этот код на хостинге с включенным register_globals - он все равно заработает (массивы _GET, _POST и пр. существуют и там), а пробем с безопасностью не будет.

   
 
 автор: NickCo   (26.04.2006 в 11:26)   письмо автору
 
   для: Loki   (26.04.2006 в 11:17)
 

А как можно отправить данные обработчику, если форма и обработчик находятся в одном файле пхп? Всмысле, как узнать, какому скрипту передавать данные, если в форме стоит action="" ?

   
 
 автор: Loki   (26.04.2006 в 11:58)   письмо автору
 
   для: NickCo   (26.04.2006 в 11:26)
 

смотрим какие есть поля в форме, забиваем для них начения в скрипт, и натравливаем на файл с формой. Получается спам. Если скрипт зациклить, то получится флуд:)

   
 
 автор: XPraptor   (26.04.2006 в 15:53)   письмо автору
 
   для: Loki   (26.04.2006 в 11:58)
 

Если сессия имеется и всегда назначена, то флуд и спам не страшен.
При первом входе на страницу (сайт) объявляется сессионная переменная, а при посте на форму она проверяется.
Ни робот ни скрипт не будет сохранять сессию (хотя могут) и при посте из скрипта она не будет определена, поэтому вы проверите, есть сессия и сколько времени прошло после предыдущего поста с этой сессии и если глюкен - то exit();

   
Rambler's Top100
вверх

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