Как я могу автоматически заблокировать посетителя? - PullRequest
0 голосов
/ 05 июля 2019

Я хотел бы получить совет о том, как можно заблокировать посетителя. Я создал доску, на которой вы можете публиковать сообщения, не имея аккаунта, а другой пользователь может сообщить о том, что вы злоупотребляете.После 50 сообщений сообщение удаляется, и посетителю следует запретить (он не может оставлять или оставлять комментарии) со своим IP-адресом.

Я посмотрел на камень rack-attack, но, похоже, он не подходитмоя проблема.Если я хорошо понимаю, я должен добавить IP в блок-лист или allow2ban самостоятельно, и это не то, что я ищу.

Также я думал о сохранении Ip в таблице типа user_ban, но я неНе знаю, как я могу автоматически их разблокировать через несколько часов или дней.Вот почему я ищу советы или идеи.

Спасибо

1 Ответ

0 голосов
/ 05 июля 2019

Хорошо, так что, исходя из того, что вы сказали, я бы рекомендовал выполнить действие before в контроллере приложения, чтобы просто перенаправить IP-адрес пользователя в список запрещенных.Поскольку IP - это единственное, что вы отслеживаете, это единственное, с чем мы должны работать, что, как вы упомянули, не на 100%, но кажется, что это лучшее, что мы можем сделать.В коде ниже banned_ip_list будут включены все ваши заблокированные ips.так как вы не говорите конкретно, что вы хотели бы сделать для забаненного пользователя, я оставил его открытым для заполнения в методе.

application_controller.rb

before_action :check_if_user_is_banned

...

private 

  def check_if_user_is_banned
    if banned_ip_list.includes?(request.remote_ip)
      # what do you want to do here? Keep redirecting to a page and display a message?
    end
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...