【问题标题】:Suggestions for an implementation in Django在 Django 中实现的建议
【发布时间】:2021-06-09 22:19:54
【问题描述】:

我在 django 上创建了一个博客,我需要使用 iptables 配置访问权限。 我不知道该怎么做,任何人都可以指出一些材料吗? 我正在考虑创建一个函数,可以在其中传递允许访问的一系列 ip 号码,但我不知道在 django 中的确切位置。

【问题讨论】:

  • IPtables 在那种情况下有什么用?
  • @MohamedElKalioby 我正在创建的应用程序将在私人服务器上运行,它不会向公众开放。所以想法是只有特定的ips才能访问它。
  • 您可以简单地检查请求标头是否与某些 ips 匹配。

标签: python-3.x django linux iptables python-iptables


【解决方案1】:

那么最好的办法就是为此创建一个中间件,它会检查 IP 是否在合适的范围内,

def checkIP(get_response):
   def middleware(request):
      x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
      if x_forwarded_for:
         ip = x_forwarded_for.split(',')[0]
      else:
          ip = request.META.get('REMOTE_ADDR')
      if not ip in settings.GOOD_IPS:
           return HttpResponseForbidden("You are not allowed here")
      response = get_response(request)
      return response
return middleware 

但一般来说,这不是推荐的行为,因为 IP 可以更改,用户可以尝试从另一个终端访问

【讨论】:

  • 我在考虑使用 iptables。你怎么看?
  • 当然可以,但是中间件可以为您提供更大的灵活性,因为超级用户可以从任何地方访问,这不能通过 iptables 完成
  • 谢谢!非常感谢您的建议,它解决了我的问题。
  • 试一试,如果可行,请批准答案
猜你喜欢
  • 2023-03-07
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2023-03-07
  • 2012-01-29
  • 1970-01-01
相关资源
最近更新 更多