Forum Webscript.Ru
Программирование => PHP => Тема начата: andymc от 22 Февраля 2007, 19:13:17
-
Есть гостевая у меня на сайте, которую частенько спамят.
Наткнулся на http://seomanager.ru/scripts.html - скрипты сабмита гостевых.
Начал думать, как защитися от спама.
Вот решения, которые приходят в голову.
1. На сайте есть переменная - кол-во пользователей, меняется много раз за день. почему бы её не записать в hidden поле формы а потом проверять?
2. Записать в сессию перемнную md5(uniqid(rand(),1)) и тоже проверять.
3. Если сообщение содержит больше 2 ссылок
Насколько эти решения удачны? Может есть другие варианты?
-
Ты хочешь защитится от стандартных скриптов или от скриптов, которые будут писаться специально для спама твоей гостевой ?
Первые твои 2 варианта не подойдут - стандартные скрипты просто вырежут соотв. значению и пошлют в запросе.
Третий вариант возможно и имеет смысл, но его постоянно надо совершенствовать.
Стандартные решения :
1. CAPTCHA - более надежно
2. менее надежный вариант - см пример на http://www.vintest.ru/operator.php - обходится легко, но для таких сайтов нужно писать отдельный модуль
-
Насчет капчи недавно интересную идею где-то прочитал: не заставлять пользователя доказывать, что он человек, а заставить робота раскрыть свою сущность. Например, скрыть средствами css некое текстовое поле, значение которого проверять. Если форму заполняет человек, он не увидит и не заполнит поле. Не универсально, но мысль здравая.
-
Макс
Важно защитить вообще от автоматического добавления сообщений.
Капча и вопросы - это здорово. Но не хочется заставлять человека доказывать, что он не верблюд :)стандартные скрипты просто вырежут соотв. значению и пошлют в запросе
Они что форму загружат себе и сканируют?
Как тогда они определяют в какое поле что писать? А если я поля назову случайным образом? Если они вместо емейла напишут сайт, сразу ошибка будет...
Интересно кстати, как работают современные спамеры.
-
andymc:
Капча и вопросы - это здорово. Но не хочется заставлять человека доказывать, что он не верблюд
чтобы человек доказал что он человек, ему нужно сделать что-то на что не способны роботы. Если надо : andymc:
защитить вообще от автоматического добавления сообщений
то капча - единственный более-менее надежный метод
Не от хорошей жизни почти все крупные сайты его используют.
andymc:
Они что форму загружат себе и сканируют?
Ну это уж как автор напишет. Вообще загрузка формы для определения списка полей и скрытых значений - вполне логичное решение для таких скриптов.
-
Макс
Капча это конечно круто, не спорю.
Но вот например когда я запретил тексты с 2 и более тегами
brainkiller
Идея хорошая. Запомним.
Ещё кстати, слышал такой способ. Ловить событие onClick кнопки. И записывать в скрытое поле какую-нибудь перемную.
-
andymc
Давай по сути.
Либо ты анализируешь контент, либо ты анализируешь процесс работы пользователя. Здесь принципиальная разница.
В первом случае: если ты запрещаешь теги А, то ты это делаешь для всех. Что зависит от твоей бизнес-задачи.
Во втором случае: если есть задача технически отличить пользователя от бота, то пока единственный вариант - это captcha. [off]Есть еще парсинг сложных выражений (но их и генерить непросто).[/off]
Не надо смешивать эти два понятия, ОК?
Про скрытые поля, JS и прочую лабуду: да, это защитит от тупых боксовых автоспамилок. Но чаще всего автор бота просто напишет отдельный скрипт, который будет соответствовать твоей "проверке" на твоем сайте. Делов-то.
-
автор бота просто напишет отдельный скрипт
вот как раз это самое страшное. От этого конечно защитися можно только с помощью картинок.
А авторам не лень для каждой гостевой писать скрипт?
Хм.. буду думать дальше.
-
andymc
andymc:
не лень для каждой гостевой писать скрипт?
Как показывает практика - нет, не лень. Пишут.