Защита от спама на JavaScript


Защита от спама на JavaScript

Доброго всем дня, здравствуйте! Наверняка каждый пользователь интернета не только слышал, но и испытал на себе, что это такое - спам. Спам (spam) — массовая рассылка рекламы, сообщений лицам, не выражавшим желания их получать. И сегодня я хочу рассказать о предельно простом, но очень эффективном методе борьбы со спамом с помощью JavaScript.

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

Все это происходило это при том, что на сайте у меня стояла капча! Кстати, пошаговый процесс установки капчи практически на любой сайт, описан в статье "Как установить капчу на сайт". И как раз вэтой статье я писал, что капча не дает 100% гарантии.

Давайте рассмотрим, почему такое могло случится.
Отправляя спам, спамер хочет получить обратные ссылки на свои сайты. Для этого существует масса программ, которые позволяют сделать это в автоматическом режиме. Обычно принцип их работы заключается в скачивании страницы сайта и определения существует ли на ней форма для ввода сообщений. Если форма для ввода найдена, то программа анализирует и обрабатывает поля формы.

И капча на становится преградой для этих программ. Простую капчу программа расшифрует сама, а капчу посложнее, в случае необходимости, передаст для обработки людям. В результате программа получает всю информацию о форме для ввода комментариев.

Собрался я уже было скрипт писать на стоп-слова всякие, фильтрацию по IP адресам с баном ставить, базу MySQL подключать и т.п., но потом решил сначала посмотреть в интернете рекомендации в подобных случаях.

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

На самом деле предистория получилась длиннее чем сам способ, который укладывается ровно в три строчки.

В форму добавления комментария добавляем скрытое поле с именем name="check" и пустым значением value="":

<input id="check" name="check" type="hidden" value="" />

В кнопку оправки формы добавляем JavaScript код:

<input type="submit" value="Оправить" onclick="document.getElementById('check').value = 'stopSpam';" />

В php-скрипте, который проверяет данные из формы делаем дорлнительную проверку:

if ($_POST['check'] != 'stopSpam') exit('Spam decected');

Принцип действия этого метода основывается на том, что спам-боты не умеют выполнять программы на JavaScript. И если на кнопку "Отправить" нажмет человек, то при нажатии на кнопку выполнится JavaScript код, в результате выполнения которого в скрытое поле с идентификатором id="check" в переменную "check" запишется значение "stopSpam". А в случае с роботом переменная так и останется пустой.

И все что останется предпринять - это проверить в скрипте чему равна полученная переменная с именем "check". Если оно равно проверочному слову "stopSpam", значит сообщение отправил человек. Ну а в противном случае, процентов на 99 (1% - вдруг у пользователя отключен JavaScript) - это робот.

Вот так буквально за пару минут я решил проблему спама у себя на сайте. Надеюсь вам пригодится этот способ. Злые спамеры конечно не спят, и наверняка придумают что-нибудь новенькое. Ну да и мы тоже не лыком шиты - всегда найдем достойный ответ. А на этом сегодня все.

Автор: Сергей Зарубин

Дата: 2011-08-27

Колличество просмотров: 16445

Нравится

Комментарии к заметке:

Комментарий добавил(а): Forceman
Дата: 2011-10-22

Гениальный в принципе способ. Спасибо, воспользовался.

Комментарий добавил(а): Sirge
Дата: 2011-10-31

Что-то очень просто, давно бы уже не было спама.

Комментарий добавил(а): Ли
Дата: 2012-02-05

Спасибо!

Комментарий добавил(а): Лёха
Дата: 2012-04-01

Отлично! Ну а если в браузере у пользователя отключён javascript (или не поддерживается)... а человек будет реальный? ..

Комментарий добавил(а): Сергей Зарубин
Дата: 2012-04-02

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

Комментарий добавил(а): Олег
Дата: 2012-05-31

Сергей, спасибо!
Отлично работает.

Комментарий добавил(а): VVhite RABBIT
Дата: 2012-07-08

СПАСИБ РАБОТАЕТ

Комментарий добавил(а): Юра
Дата: 2013-01-10

Поставил к себе на сайт. Бум надеяться, что поможет. А то спам достал в конец

Комментарий добавил(а): bot
Дата: 2013-03-25

Это вообще не защита)
Вот если бы строка была случайной, или туда писался бы некий хеш, каждый раз разный - это было бы уже получше.

Комментарий добавил(а): Евгений
Дата: 2013-05-12

Это защита от самых примитивных ботов, которые не понимают js. От современных роботов, конечно, не поможет. Иначе бы здесь в комментах не капча стояла ))

Комментарий добавил(а): Евгений
Дата: 2014-01-26

Мне помогло избавиться от одного очень надоедливого спам-бота, который "постил" мою форму по десятку раз за сутки

Комментарий добавил(а): Стас
Дата: 2014-08-18

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

Комментарий добавил(а): Мастер
Дата: 2015-04-11

при обновлении страници не работает

Комментарий добавил(а): Виталий
Дата: 2015-11-03

Благодарю за прекрасное решение!
Воспользовался! Работает!

Комментарий добавил(а): vElenaSn
Дата: 2017-06-06

Наш сервис предоставляет настоящие лайки на фотографии заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

достаточно просто зарегистрироваться на нашем сервисе. > http://oplata-vklike.tk/ <

Вывод заработанных средств ежедневно в течении нескольких минут.

Комментарий добавил(а): vegorSn
Дата: 2017-06-07

Предлагаем Вам работу без вложений, на системе автоматического приёма и обработки заказов.

Мы предоставляем:

- Наш лицезионный софт.
- документы со всей необходимой доп. информацией.
- постоянная техническая поддержка.

Оплата от 5500 в день. Выплаты ежедневно.

Более подробная информация на нашем сайте >> www.obrabotka.zarplatt.ru <<

Комментарий добавил(а): lElenaSn
Дата: 2017-06-07

Наш сервис предоставляет настоящие лайки на фотографии заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

Вам достаточно просто зарегистрироваться на нашем сервисе. > www.oplata-vklike.tk <

Вывод заработанных средств ежедневно в течении нескольких минут.

Комментарий добавил(а): megorSn
Дата: 2017-06-07

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

Займ от частного инвестора.

Наша компания помогает встретиться инвестору и заёмщику.

Прямой контакт с инвестором
Любая кредитная история
Нужен только паспорт
Работаем с частными лицами и фирмами
Любой регион
Сумма от 5,000 до 50,000,000 руб
Процент одобрения 97%

Преимущества:

- Без залога и поручительства!
- Ставка - всего от 1% в месяц!
- Без скрытых платежей и комиссий!

Оформите заявку на нашем сайте. > www.ch-investor.tk <

Комментарий добавил(а): wegorSn
Дата: 2017-06-09

Ведущая компания в России и странах СНГ по продаже авиабилетов «Airline»

Крупнейшая международная компания по продаже А/В билетов
срочно набирает сотрудников на постоянную основу для несложной
работы через интернет, с ежедневными выплатами до 11 000 руб.

Работая в нашей компании Вы получаете:

- Соблюдение трудового кодекса
- Полный соцпакет, оплачиваемый отпуск, больничный, санаторий.
- Каждый наш сотрудник на дому гарантированно получает высокий доход. руб. в день.
- Гарантированные стабильные выплаты заработанных денег.
- Выплаты происходят ежедневно на банковские карты или электронные кошельки.

Пройдите регистрацию у нас на сайте. > www.Airline-Rabota.tk <

Без вложений, опыт и профессиональные навыки не требуются!

Комментарий добавил(а): Алексей
Дата: 2017-09-22

Капчу взломалы, Человеко-боты ?
или просто - БОТЫ2017+ !!???



Добавить новый комментарий


Введите число с картинки:

captcha