2012-02-07 2 views
2

У нас есть веб-приложение Django, работающее на Ubuntu/Apache. В последнее время у нас было много проблем с большим объемом спама (комментарии, регистрации, контент, предоставленный пользователями и т. Д.).Django app спам-предупреждение

У нас есть CSRF безопасность на месте, но интересно, какие шаги предприняли другие, чтобы обуздать это (ограничения IP-стола, модули Apache, captchas и т. Д.)?

ответ

3

В дополнение к тому, что другие плакаты уже написаны, вы можете использовать услуги akismet или mollom. Для обоих существуют библиотеки Python на pypi, соответственно akismet и PyMollom. Вы можете увидеть, как они интегрируются в проект Django here (пример akismet) и here (пример mollom).

Если вы не хотите полагаться на внешние службы, рассмотрите возможность использования приложения-конвертера для Django. Лично я использовал Django Simple Captcha и был доволен этим, это очень настраиваемый и простой в установке. Он также поддерживает аудиокартинку. This bitbucket repo содержит простой проект Django, показывающий, как captcha защищать классическую форму контакта с помощью Django Simple Captcha.

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

+0

спасибо, моя забота также о производительности ... даже если я заблокирую создание контента, у меня все еще есть боты, ударяющие по моему сайту снова и снова ... Я поднял ip-таблицы как способ остановить их у входной двери для минимизации влияния на производительность и т. д. ... –

2

Защита Django CSRF предназначена для защиты ваших форм от cross-site request forgery, а не от спама.

CAPTCHA (Полностью автоматизированный общественный Turing тест, чтобы рассказать о компьютерах и людях) защитит вас от автоматических спамов.

Для СПАМ, созданного человеком, вы можете использовать систему модерации.

0

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

Captchas - чрезвычайно простой способ избавиться от спама. http://www.google.com/recaptcha Recaptcha буквально занимает всего пару минут, чтобы интегрироваться, и является чрезвычайно эффективным.

1

Вы можете взглянуть на django-simple-math-captcha в качестве альтернативы текстовому перекодированию. Это очень просто для интеграции и не зависит от каких-либо сторонних систем.