[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита от автоботов
Nuga22
На одном сайте читал статью по защите от автоботов. Один из способов проверять загрузил ли пользователь всю страницу с формой или нет.
Скажите, а как делается такая проверка. Если можно пример PHP кода. Или где почитать об этом. Не где что-то не найду.
Заранее благодарен.
r3al
никак, любую форму подделать можно. на яваскрипте попытаться поле добавлять перед отправкой, что то же не панацея.. боты умеют обучаться.. гугли яваскрипт ловушки.. на хабре обсуждали обфускацию защиты от ботов.. там примерчик ниче так был, но его обсуждали именно потому что автор того топика разобрался в защите той.
sergeiss
Один из вариантов - это делать аяксовую загрузку формы. Естественно, что можно сделать бота, который это подделает smile.gif Но большинство ботов пролетят мимо.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Nikitian
Примерный алгоритм.
Подставить в список загружаемых ресурсов скрипт, файл стилей или картинку, которые будут с привычным расширением отдавать, но по сути являться бек-енд скриптом, который ставит метку в сессию. При сабмите защищаемой формы, если этой метки в сессии нет, то просим запостить ещё раз - мало ли сессия протухла из-за долгого набора формы. Но, в итоге, не разрешать постинг, когда не появится метка. Главное не переусердствовать и не использовать в названии ресурса что-то, что может блочиться плагинами типа adblock. Для большей непробиваемости, лучше скриптом всё же отдавать легитимный ресурс, а не пустой ответ.

Не забывайте, что много спама идёт через программы типа allsubmiter, а они загружают все ресурсы и ваша защита не сработает. wink.gif

Ну и никто не отменял проверку данных на легистимность. У одного из заказчиков для этого хватило составления стоп-словаря + полной уверенности, что на русскоязычном ресурсе не может быть полностью англоязычных комментов + кое-какие нюансы, которые лучше не раскрывать. Удалось победит спам, не показывая капчу нормальным посетителям.
Nuga22
Вот может кому будет интересно Методы защиты веб-формы без капчи
Nuga22
Цитата (Nikitian @ 7.05.2013 - 23:12)
Примерный алгоритм.
Подставить в список загружаемых ресурсов скрипт, файл стилей или картинку, которые будут с привычным расширением отдавать, но по сути являться бек-енд скриптом, который ставит метку в сессию. При сабмите защищаемой формы, если этой метки в сессии нет, то просим запостить ещё раз - мало ли сессия протухла из-за долгого набора формы. Но, в итоге, не разрешать постинг, когда не появится метка. Главное не переусердствовать и не использовать в названии ресурса что-то, что может блочиться плагинами типа adblock. Для большей непробиваемости, лучше скриптом всё же отдавать легитимный ресурс, а не пустой ответ.

И других вариантов не бывает?
Если что я не издеваюсь. Просто реально не знаю. smile.gif
Valick
по ссылке
Цитата
Раздел должен содержать лакомые для бота слова вроде «email», «submit», «add comment» и тому подобные. Файл «robots.txt» предупреждает хороших ботов.

что мешает плохим ботам анализировать этот файл?

_____________
Стимулятор ~yoomoney - 41001303250491
Visman
Nuga22, для каждого пользователя должна создаваться сессия.
В сессии сохраняем адреса открытых страниц и время их открытия (например последних 10 открытых)
При получении данных от формы проверяем была ли страница с формой открыта и в какое время.
sergeiss
Цитата (Valick @ 8.05.2013 - 01:04)
что мешает плохим ботам анализировать этот файл?

Вспомнил тут... Я как-то в детстве положил ключ от двери под коврик и оставил записку для мамы: "ключ под ковриком" wink.gif Почему-то подумал, что если я ей пишу, то только она и прочитает smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Valick
sergeiss biggrin.gif biggrin.gif biggrin.gif
ключи и на шее носил и под ковриком оставлял, но правда записок не писал, была надежда что сама догадается smile.gif

_____________
Стимулятор ~yoomoney - 41001303250491
FatCat
Цитата (Nikitian @ 7.05.2013 - 22:12)
Примерный алгоритм

Хороший программист взломает любой алгоритм.
Надежная защита - не та, которую невозможно взломать, а по принципу "неуловимого Джо" - которую не будут ломать.

Цена вопроса спама на форумах - несколько центов с каждого форума. Ни один программист не будет за несколько центов морочиться взломом, пока эта защита уникальна на одном единственном форуме. Так и у нас: защита не сложная, но уникальная, и никому не нужно тратить свое время на взлом.

Когда защита устанавливается на тысячи форумов в сети, взлом такой защиты становится экономически выгодным, и такая защита будет рано или поздно взломана.

_____________
Бесплатному сыру в дырки не заглядывают...
Nuga22
Цитата (Visman @ 8.05.2013 - 05:33)
Nuga22, для каждого пользователя должна создаваться сессия.
В сессии сохраняем адреса открытых страниц и время их открытия (например последних 10 открытых)
При получении данных от формы проверяем была ли страница с формой открыта и в какое время.

Интересно, спасибо!
Nuga22
Цитата (r3al @ 7.05.2013 - 22:56)
на яваскрипте попытаться поле добавлять перед отправкой

Чтото мне не хочется в таких вещах яваскриптам доверять. Мне кажется что их можно легко увидеть и понять в чем принцип защиты! Например страницу сохраняешь и все яваскрипты на рабочем столе. Смотри не хочу!
Nikitian
Цитата (Nuga22 @ 8.05.2013 - 00:59)
И других вариантов не бывает?
Если что я не издеваюсь. Просто реально не знаю.  smile.gif

Вариантов миллиард. Главное выбрать нужный smile.gif
Цитата (FatCat @ 8.05.2013 - 16:11)
Хороший программист взломает любой алгоритм.
Надежная защита - не та, которую невозможно взломать, а по принципу "неуловимого Джо" - которую не будут ломать.

Я лишь говорил о том, что не стоит рассматривать ботов как некий скрипт. Очень часто это полуавтоматическая или автоматическая система, работающая через обычный легитимный браузер, который всё загружает и исполняет.
FatCat
Цитата (Nikitian @ 8.05.2013 - 22:17)
полуавтоматическая или автоматическая система

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

_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

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