class IPFilterMiddleware:
def __init__(self, get_response):
self.get_response = get_response
self.allowed_ips = settings.ALLOWED_IP_ADDRESSES
def __call__(self, request):
# Get the client's IP address from the request, this might not always be correct I believe, needs some testing
client_ip = request.META.get('REMOTE_ADDR')
if client_ip in self.allowed_ips:
return self.get_response(request)
else:
return HttpResponseForbidden("Access Denied")
2条答案
按热度按时间798qvoo81#
我不确定选项2,但对于选项1,最好的方法是添加中间件,如果IP不被识别,它将拒绝访问。类似这样的东西应该可以工作:
最后一步是在
settings.py
中添加中间件。drkbr07n2#
Django,防止其他用户访问应用程序
有一个称为django-iprestrict的库专门为它创建,您可以使用它。
PaaS,这样潜在的攻击者首先就无法访问平台?(希望一些PaaS有这个选项)
如果你可以远程访问服务器并且你使用的是apache,那么你可以启用apache authenticate,这将只允许那些拥有密码的人访问。您可以按照数字海洋文档here进行设置