очень нужно знать!!
Спустя 10 минут, 27 секунд (30.07.2010 - 11:02) Basili4 написал(а):
Бот эмулирует нажатие на кнопу и будет вызвано событие onclick
Можно спрятать кнопку от бота или например событие оnClick навешивать скриптом боты сколько я знаю js скрипты не выполняют тогда будут проходить все люди у которых разрешен JS в настройках
Можно спрятать кнопку от бота или например событие оnClick навешивать скриптом боты сколько я знаю js скрипты не выполняют тогда будут проходить все люди у которых разрешен JS в настройках
Спустя 1 минута, 5 секунд (30.07.2010 - 11:03) Семён написал(а):
Смотря какой бот, если заранее автокликер подготовленный, то защите облом.
Если обычный бот, опять же заранее подготовленный, то защите облом (проследит что должно происходить после onClick и пойдёт дальше...)
Если бот первопроходец - спасенье таким способом есть.
Если обычный бот, опять же заранее подготовленный, то защите облом (проследит что должно происходить после onClick и пойдёт дальше...)
Если бот первопроходец - спасенье таким способом есть.
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Спустя 3 минуты, 39 секунд (30.07.2010 - 11:06) Guest написал(а):
Basili4
хорошо, понял, только вопрос сразу возникает, ведь один раз хозяин бота может заглянуть в js скрипты и найти функцию, которая создает событие, а потом он ведь сможет запрограммировать бота уже напрмую добавлять это событие...?
хорошо, понял, только вопрос сразу возникает, ведь один раз хозяин бота может заглянуть в js скрипты и найти функцию, которая создает событие, а потом он ведь сможет запрограммировать бота уже напрмую добавлять это событие...?
Спустя 1 минута, 10 секунд (30.07.2010 - 11:08) Семён написал(а):
Guest
Читай мой п.2
Читай мой п.2
Спустя 1 минута, 9 секунд (30.07.2010 - 11:09) Guest написал(а):
Семён
в моей ситуации онклик должен свидетельствовать, что нажавший был человек, как максимально надежно этого добиться?
в моей ситуации онклик должен свидетельствовать, что нажавший был человек, как максимально надежно этого добиться?
Спустя 17 секунд (30.07.2010 - 11:09) Basili4 написал(а):
Ну в этом случае школота пользующая чужие боты отпадает это меньше спама. Плюс к этому навешать других защит. Которые сделают твой сайт менее привлекательным для Спамеров
Спустя 2 минуты, 40 секунд (30.07.2010 - 11:12) Guest написал(а):
Basili4
ну пока я так и думаю делать, но очень хочется найти что-то координально отличающее человека от бота. можно конечно js скрипты так написать, что черт не разберет что там, но тоже не лучший выход)))
ну пока я так и думаю делать, но очень хочется найти что-то координально отличающее человека от бота. можно конечно js скрипты так написать, что черт не разберет что там, но тоже не лучший выход)))
Спустя 6 минут, 47 секунд (30.07.2010 - 11:19) Basili4 написал(а):
Бот не исполняет скрипты js. но во всяком случае если и исполняет то очень редкий бот
Спустя 36 минут, 27 секунд (30.07.2010 - 11:55) Семён написал(а):
Цитата (Guest @ 30.07.2010 - 12:12) |
Basili4 ну пока я так и думаю делать, но очень хочется найти что-то координально отличающее человека от бота. можно конечно js скрипты так написать, что черт не разберет что там, но тоже не лучший выход))) |
Придумаешь этот способ обязательно выходи на Facebook и Vkontakte с деловым предложением ))) разбогатеешь )
Спустя 6 минут, 32 секунды (30.07.2010 - 12:02) Basili4 написал(а):
А вообще тема интересная.
Спустя 30 минут, 19 секунд (30.07.2010 - 12:32) Guest написал(а):
Семён
ахахахах)))))
Basili4
ага, а главное актульная очень)
ахахахах)))))
Basili4
ага, а главное актульная очень)
Спустя 2 часа, 10 минут, 54 секунды (30.07.2010 - 14:43) Guest написал(а):
ааа, кстати, бот при нажатии на самбит имитирует onclick или onmousedown? или оба?))
в общем я сделал через js, натипа
document.getElementById('x').onmousedown=function(){}
но вот сомнения жуткие)) а бота сам не смогу сделать такого, чтобы проверить)
в общем я сделал через js, натипа
document.getElementById('x').onmousedown=function(){}
но вот сомнения жуткие)) а бота сам не смогу сделать такого, чтобы проверить)
Спустя 8 минут, 55 секунд (30.07.2010 - 14:52) FatCat написал(а):
Цитата (Basili4 @ 30.07.2010 - 12:19) |
Бот не исполняет скрипты js. но во всяком случае если и исполняет то очень редкий бот |
Бред.
Чтобы писать защиты от ботов, посоветую для начала изучить ботов.
Цитата (Guest @ 30.07.2010 - 12:12) |
можно конечно js скрипты так написать, что черт не разберет что там |
Это ничего не даст.
Ботописатель не будет расшифровывать джаваскрипты, ботописатель в дебагере подменит в форме POST на GET и посмотрит в адресной строке все передаваемые параметры в открытом виде.
Цитата (Guest @ 30.07.2010 - 15:43) |
бот при нажатии на самбит имитирует onclick или onmousedown? или оба?)) |
Ничего он не имитирует.
Бот считывает теги и подставляет в запрос имена переменных из тегов и их значения из своей базы.
По сути, играми с "онкликом", Вы лишь создаете динамические теги, которые бот не видит.
Пока у Вас не фейсбук и не вконтакт, никому нафиг не сдалось настраивать под Ваш сайт бота вручную и ботов не будет.
Для высокопосещаемых сайтов требуются уже иные алгоритмы защиты, похитрее.
Спустя 24 минуты, 30 секунд (30.07.2010 - 15:16) Семён написал(а):
Цитата (FatCat @ 30.07.2010 - 15:52) |
Для высокопосещаемых сайтов требуются уже иные алгоритмы защиты, похитрее. |
И то сцуки спамят безбожно )))
Спустя 9 минут, 11 секунд (30.07.2010 - 15:25) Basili4 написал(а):
Спам боты заходят по ссылкам которые человек не видит Но по этим ссылкам могут ходить и поисковые роботы если их отделить от спам бота тогда что можно и сделать только вопрос как?
Спустя 39 минут, 22 секунды (30.07.2010 - 16:05) Guest написал(а):
FatCat
помоги разобраться больше
вот у меня пара интутов
<input name='pass' type='password' maxlength='20' />
<input name='login' type='text' maxlength='20' />
<input name='email' type='text' maxlength='20' />
а вот сабмит
<input id="x" type="submit" />
вот меня вопрос конкретно интересует, легко ли бота запраграммировать
добавлять к сабмиту
<input id="x" onmousedown="start()" type="submit" />
и как бот реагирует на это
document.getElementById('x').onmousedown=start;
помоги разобраться больше
вот у меня пара интутов
<input name='pass' type='password' maxlength='20' />
<input name='login' type='text' maxlength='20' />
<input name='email' type='text' maxlength='20' />
а вот сабмит
<input id="x" type="submit" />
<script type="text/javascript">
document.getElementById('x').onmousedown='';
document.getElementById('x').onmousedown=start;
function start() { //после этой функции все начинает работать уже на стороне сервера
}
</script>
вот меня вопрос конкретно интересует, легко ли бота запраграммировать
добавлять к сабмиту
<input id="x" onmousedown="start()" type="submit" />
и как бот реагирует на это
document.getElementById('x').onmousedown=start;
Спустя 19 дней, 23 часа, 33 минуты, 15 секунд (20.08.2010 - 15:38) Белый Тигр написал(а):
Я как-то раз на практике использовал следующий способ защиты. При клике на кнопку отправки формы к её action`у через JS приписывался дополнительный параметр и она отправлялась. А на стороне сервера проверялось наличие этого параметра. Способ очень эффективен против массовых ботов-спамеров. Ещё и пользователям не нужно никаких чисел с картинок вводить. Но как только у вас будет огромная посещаемость, могут появиться люди которые специально под ваш сайт напишут отдельного бота. Тогда будет уже в разы сложнее и надеятся останется только на такие решения как ReCaptcha.
Что касается обработки JS ботами, то теоретически (я таких не встречал) такое возможно. Самый простой способ - через использование COM/XPCOM.
В большинстве же своём, они JS не обрабатывают. Так что некоторые уловки из этой области вполне прокатят.
Что касается обработки JS ботами, то теоретически (я таких не встречал) такое возможно. Самый простой способ - через использование COM/XPCOM.
В большинстве же своём, они JS не обрабатывают. Так что некоторые уловки из этой области вполне прокатят.
Спустя 2 часа, 39 минут, 26 секунд (20.08.2010 - 18:17) DedMorozzz написал(а):
До первого посетителя бото-писателя. Такая защита обходится в момент
Спустя 57 секунд (20.08.2010 - 18:18) FatCat написал(а):
Цитата (Белый Тигр @ 20.08.2010 - 16:38) |
надеятся останется только на такие решения как ReCaptcha |
Цена вопроса обхода рекапчи измеряется несколькими центами за каждую разгаданную.
Если ценность спам-сообщения в ваш форум выше нескольких центов, рекапчу разломают в пух и прах, а нормальным посетителям она причинит массу неудобств.
Я остаюсь при своем мнении, что джаваскриптовая защита - самая лучшая защита, кроме конечно ручной проверки модератором. И чем меньше остается программистов, пишущих на языке ядра js, тем меньше шансов, что мой алгоритм взломают. Даже тот примитив, что стоит на этом форуме и скопирован еще на десятки форумов в сети, за несколько лет не взломали ни разу.
Спустя 2 минуты, 17 секунд (20.08.2010 - 18:21) DedMorozzz написал(а):
Velson как-то упоминал, что лишь из-за того, что это никому не надо было...
Спустя 29 минут, 32 секунды (20.08.2010 - 18:50) FatCat написал(а):
Цитата (DedMorozzz @ 20.08.2010 - 19:17) |
До первого посетителя бото-писателя. |
Последний хрум обходит эту защиту в автоматическом режиме: он тупо ищет теги инпутов внутри джаваскриптов и их значения, и тупо подставляет имена тегов и значения в массив передаваемого по POST.
Прежде чем делать защиты, полезно изучить врага.
Сегодняшние боты не читают стилей, и защиту от ботов можно построить вообще на css, вообще без джаваскрипта, и я знаю ресурсы, которые так и защищаются. Но это и в самом деле до первого ботописателя.
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Джаваскрипт позволяет прятать код. И не только шифрованием кода, нередко простым разнесением, как это сделано например здесь для кнопки
![user posted image](http://phpforum.ru/html/UBBC/me.gif)
Поищи, откуда джаваскрипт берет ник модератора для подстановки в теги. Найти будет не сложно, потому что ты знаешь что искать: посмотришь где генерится код кнопки, найдешь функцию сборки кода, в функции найдешь имя переменной, а по имени переменной найдешь и где задается значение.
Когда ты не знаешь что искать и нет начальной точки для поиска - найти место вывода значения проверочной переменной намного сложней..