Django: Как ограничить количество постов с того же IP или пользователя? - PullRequest
0 голосов
/ 26 ноября 2010

Есть ли встроенный способ или несколько приложений для этого в Django?

Например, ограничить количество комментариев, которые пользователь может оставлять за час?Что-то, чтобы защитить мой сайт от злонамеренного потока постов?

Ответы [ 4 ]

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

Некоторые способы решения этой проблемы -

  1. Есть modules для веб-серверов, которые отслеживают запросы на основе IP, вы можете установить там ограничение, заявив, что если запросы с определенного IP превышают ограничение, то прекратить обслуживание запроса в течение некоторого предопределенного периода времени (он же черный список)
  2. Вместо того, чтобы блокировать, вы можете быть более нежным и показывать капчу.

Так что, по сути, это решение должно быть принято задолго до того, как Джанго войдет в картину.

0 голосов
/ 26 ноября 2010

попробуйте с ReCaptcha , чтобы предотвратить флуд или спам

0 голосов
/ 26 ноября 2010

Используете ли вы существующие фреймворки, такие как django.contrib.comments, или вы используете собственные комментарии?

Если вы используете contrib.comments, вы можете оставить комментарий при получении сигнала comment_will_be_posted (http://docs.djangoproject.com/en/1.2/ref/contrib/comments/signals/#comment-will-be-posted).

Если вы не знаете, как использовать структуру сигналов в django, прочитайте эту ссылку: «docs djangoproject com» -> «Другие батареи включены» -> «Сигналы» (извините за такое объяснение, я не могу больше публиковать чем одна ссылка).

0 голосов
/ 26 ноября 2010

Используете ли вы существующий фреймворк?(т.е. Joomla, Drupal, Wordpress).Эти платформы могут иметь плагины или расширения, которые будут делать то, что вы хотите.

Существует несколько способов обеспечить защиту POST.

1.) Каждый раз, когда кто-то отправляет форму, сохраняйтекуки на их компьютере с датой и временем отправки.Затем в каждом сообщении проверяйте, существует ли этот файл cookie и когда в последний раз они публиковали сообщения.Запретите или примите сообщение, основываясь на временных рамках.

2.) Создайте таблицу БД, в которой хранятся данные POST, IP-адрес человека, который его отправил, и дату отправки.На каждом POST сначала проверьте базу данных на тот же IP-адрес в указанном диапазоне дат.Запретить или принять сообщение.

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

Swhistle Soft

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