如何自动禁止访问者?

时间:2019-07-05 18:01:53

标签: ruby-on-rails

我想要一些关于如何禁止访问者的建议,我创建了一个论坛,您可以在其中发布而无需帐户,其他用户可以在您举报时举报。报告50后,该帖子将被删除,访问者应被禁止使用其IP地址(不能再发表或发表评论)。

我看了宝石rack-attack,但它似乎不适合我的问题。如果我了解得很好,我必须自己在阻止列表中添加IP或allow2ban,这不是我想要的。

我还考虑过将Ip保存在user_ban之类的表中,但是我不知道如何在几个小时或几天后自动取消对它们的禁止。 这就是为什么我要寻求建议或想法。

谢谢

1 个答案:

答案 0 :(得分:0)

好因此,根据您的发言,如果用户的ip在禁止列表中,我建议在应用程序控制器中执行before操作,以将其重定向。由于IP是您要跟踪的唯一内容,因此它是我们必须处理的唯一内容,正如您所提到的,它并不是100%,但是看来这是我们可以做的最好的事情。在banned_ip_list下面的代码中将包含您所有被禁止的ip。因为您没有特别向被禁止的用户说您要做什么,所以我将其留给您在方法内填写。

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