gpt4 book ai didi

Django ALLOWED_HOSTS 通过 Apache 接受本地 IP

转载 作者:行者123 更新时间:2023-12-04 10:48:20 26 4
gpt4 key购买 nike

我正在使用 Apache 为 Django 应用程序提供服务。
在 Django 的 settings.py 中,我有 DEBUG = False ,因此我不得不允许一些主机,例如:ALLOWED_HOSTS = ['.dyndns.org', 'localhost'] .这工作正常,但是我希望服务器也可以通过其内部 IP 地址在本地网络上访问,例如:192.168.0.x , 或 127.0.0.1等我怎么定义 192.*127.*ALLOWED_HOSTS ,如果我想避免完全打开访问 ALLOWED_HOSTS = ['*'] ?

最佳答案

遵循@rnevius 的建议,并基于 how to setup custom middleware in django 中@AlvaroAV 的指南,我已经设法用这个中间件解决了:

from django.http import HttpResponseForbidden

class FilterHostMiddleware(object):

def process_request(self, request):

allowed_hosts = ['127.0.0.1', 'localhost'] # specify complete host names here
host = request.META.get('HTTP_HOST')

if host[len(host)-10:] == 'dyndns.org': # if the host ends with dyndns.org then add to the allowed hosts
allowed_hosts.append(host)
elif host[:7] == '192.168': # if the host starts with 192.168 then add to the allowed hosts
allowed_hosts.append(host)

if host not in allowed_hosts:
raise HttpResponseForbidden

return None

和设置 ALLOWED_HOSTS = ['*']settings.py不再以不受控制的方式对所有主机开放。

谢谢你们! :)

关于Django ALLOWED_HOSTS 通过 Apache 接受本地 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36220260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com