sasha_severny (sasha_severny) wrote,
sasha_severny
sasha_severny

Categories:

Как бороться со спамом на домашнем вэб-сервере

Я написал статью Как послать Емайл с домашнего веб-сайта, где описал основной принцип отправки электронной почты с помощью SMTP сервера GMail, но ничего не сказал о защите от спама.

Теоретически если спамбот найдет нашу страницу Contact, то он может выделить из нее реквизиты емайл формы, и спаммер станет слать нам кипы мусора, прямо через URL:

http://mysexysite/cgi-bin/sendmail.py?name=Вася Пупкин&from=vasqpupkin@mail.ru&subject=Грязный спам&message=Читай блог Мисс Трамел и станешь дураком

Мы этого естественно не хотим.

Мы обезопасим себя тем, что:

  • спрячем HTML в Питонный код

  • сделаем картиночную кэпчу

  • будем вручную блокировать спаммеров


Программный код вместо HTML


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

HTML


Python


Не совсем одно и то же.

Картиночная кэпча


Кэпча генерирует код, который показывается юзеру в виде картинки, чтоб он подтвердил его вручную. Если юзерский инпут не совпадет с кодом на сервере, письмо не отправляется. Картинка измалевана точками, чтоб спаммерские программы OCR не распознали текст, и зашифрована кодировкой Base64, чтобы бот не скачал ее по URL.



Ручной антиспам


Сервер генерирует ряд заголовков, которые могут идентифицировать спаммера:

REMOTE_ADDR IP, с которого осуществлен запрос на наш сайт.
HTTP_USER_AGENT         Программа, с которой осуществлен запрос на наш сайт. У спаммеров агенты смешно называются: BlackWidow, ChinaClaw, Go!Zilla, Mister, Papa, Zeus и тд.
HTTP_REFERER Домен, с которого произошел запрос на наш сайт. В идеале это должен быть наш домен, потому что подразумевается, что посетители нашего сайта будут слать нам письма с нашего сайта, а не с Лубянки или Огарева 6.

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


Стирание HTML тагов


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

Далее:
Емайл формa, кэпча и антиспам

Subscribe

  • ToDo-софт на Линуксе и Geany

    Меня давно занимала эта проблема, составить списочек дел и вычеркивать по мере выполнения. Что может быть проще? А фиг-то там. На Линуксе такого…

  • Сервер, NAS, бэкап

    Многие думают, что делать со старыми компьютерами. Выкидывать жалко, продавать невыгодно, а юзать уже невозможно. Из старого железа можно…

  • Каша из американской гречки. Фото рецепт.

    Как бы ни кричали быдло-патриоты, что американцы гречку не едят, едят ли американцы гречку или не едят, мне доподлинно неизвестно, но известно,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments