Безопасна ли эта функция «напиши другу» с точки зрения спама и ботов? - PullRequest
0 голосов
/ 22 ноября 2010

У меня есть сайт объявлений ...

Каждое объявление отображается на странице php под названием show_ad.php

Я работаю над функцией " Подсказка другу ", в которой пользователи вводят свое имя, адрес электронной почты друзей и короткое сообщение другу.

Выше не проблема, однако мне нужно убедиться, что боты не используют эту форму для "спама" и т. Д ...

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

1 - при загрузке файла show_ad.php я генерирую случайное число, скажем, 5 цифр.
2- Я вывожу номер пользователю и говорю пользователям вводить этот номер в форму ввода текста.
3- Номер также вводится в скрытый ввод.
4- Пользователь нажимает кнопку «отправить».
5- Я использую ajax для вызова php-файла с именем send_tip.php , извлекаю значение скрытого ввода и сравниваю его с вводом текста, введенным пользователем, и проверяю, совпадают ли они, и затем отправьте электронное письмо.

Ничто не достаточно безопасно, но достаточно ли вышеперечисленного для сайта объявлений?

Спасибо

ОБНОВЛЕНИЕ:

6- Я добавляю в mysql таблицу, в которой записываются IP-адреса пользователя, отправляющего электронную почту, и, если он превышает 3 письма в минуту и ​​30 писем в день, я их останавливаю ... Хотя тогда, может быть, просто электронной почты достаточно, и я должен пропустить первые шаги со случайным числом? Что ты думаешь?

Ответы [ 4 ]

6 голосов
/ 22 ноября 2010

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

В качестве приятного побочного эффекта вы помогаете оцифровывать книги!

3 голосов
/ 22 ноября 2010

Можно легко написать бота, который смотрит на скрытое поле и отправляет правильные данные.

Так что нет, это не безопасно.

1 голос
/ 22 ноября 2010

Это не очень безопасно. Лучшим решением было бы сгенерировать это 5-значное число и сохранить его в сеансе. Затем сгенерируйте изображение, которое показывает номер. Любой бот, которому нужно взломать эту капчу, должен иметь возможность распознавать изображение, что гораздо сложнее. Еще одним небольшим преимуществом этого подхода является то, что он работает без использования AJAX, хотя это также может быть недостатком, поскольку AJAX является дополнительным препятствием для ботов. Вы можете, если хотите, по-прежнему использовать AJAX для запроса изображения.

[править] Одним очень большим преимуществом написания вашей собственной капчи является то, что кто-то должен написать для нее конкретного бота. Обычные капчи могут быть взломаны обычными ботами, которые просто ищут признаки. Я успешно защитил некоторые из моих форм, заменив сложную капчу простой изготовленной на заказ, которая показывает простой текст и даже всегда требует одинакового ответа!

1 голос
/ 22 ноября 2010

Никакие CAPTCHA не являются 100% защищенными от ботов, но 99% защищенных от ботинок достаточно.AJAX будет огромным препятствием для ботов, что достаточно безопасно.Вы должны дать вводящие в заблуждение имена для полей формы.Например, ваше скрытое поле вашего «номера» будет называться «message», поэтому ваш бот его заполнит неправильно.Однако, если ваш сайт достаточно большой, программисты ботов перепрограммируют своих ботов, чтобы справиться с вашим сайтом ...

См. Также: Практические подходы CAPTCHA не на основе изображений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...