这两个django设置有什么区别:
ALLOWED_HOSTS
CORS_ORIGIN_REGEX_WHITELIST
答案 0 :(得分:3)
ALLOWED_HOSTS
表示此Django站点可以提供的主机/域名的字符串列表。这是一种防止HTTP主机头攻击的安全措施,即使在许多看似安全的Web服务器配置下也是如此
CORS_ORIGIN_REGEX_WHITELIST
这实际上是一个期望第三方包django-cors-headers
的变量。所以当浏览器通过javascript向另一个域(跨域)启动请求时,浏览器将首先发送OPTIONS
请求通过检查allowing
标题来了解服务器是否Access-Control-Allow-Origin
要接受请求的域。
注意强>
还有一些其他标题也使用此标题,如Access-Control-Allow-Headers
等。
答案 1 :(得分:1)
表示此Django的主机/域名的字符串列表 网站可以服务。
因此,如果ALLOWED_HOSTS = ['www.mysite.com', 'mysite.com']
并且您尝试从浏览器访问blog.mysite.com
,那么Django将无法提供此页面。您应该ALLOWED_HOSTS = ['www.mysite.com', 'mysite.com', 'blog.mysite.com']
阅读与ALLOWED_HOSTS
相关的文档。它们非常简单!
CORS_ORIGIN_REGEX_WHITELIST
正如文档所述(再次):
与原始正则表达式原始主机名列表匹配的正则表列表 被授权进行跨站点HTTP请求。
当您拥有一个公开某些端点供客户端使用的API时,最常使用此设置。它允许浏览器对这些URL模式的请求。因此,如果CORS_ORIGIN_REGEX_WHITELIST = [r'images.mysite.com', ]
,那么<img src="http://images.mysite.com/image.jpg />"
将成功加载,但如果<img src="http://big-images.mysite.com/image.jpg />"
则会失败。
更多关于Mozilla MDN中的CORS。