【问题标题】:Django: What is the most proper value for ALLOWED_HOSTS?Django:ALLOWED_HOSTS 最合适的值是多少?
【发布时间】:2015-02-26 09:16:41
【问题描述】:

问题 1

据我所知,django 在 settings.py 中有 ALLOWED_HOSTS 选项来防止欺骗攻击。

但是,对于 ALLOWED_HOSTS 在案例 1~3 中,我不知道哪一个是 最合适的值。 (或者所有的结果都一样?

案例一ALLOWED_HOSTS = ['.mydomain.com']

案例2ALLOWED_HOSTS = ['myipaddress']

案例3ALLOWED_HOSTS = ['.mydomain.com', 'myipaddress']

这个问题和之前的([1],[2],[3])问题有很大关系,但是我不能清楚地做出决定。


问题 2

根据Brent's answer,编辑nginx的配置可能会产生相同的结果。 (见以下代码

upstream app_server {
    server unix:/tmp/gunicorn_mydomain.com.sock fail_timeout=0;
}

server {

    ...

    ## Deny illegal Host headers
    if ($host !~* ^(mydomain.com|www.mydomain.com)$ ) {
        return 444;
    }

    location  / {
        proxy_pass               http://app_server;
        ...
    }

}

就像类似的逻辑第一个问题一样,替换mydomain.com|www.mydomain.com 的最佳价值是什么?

【问题讨论】:

    标签: django nginx settings spoofing


    【解决方案1】:

    这种问题似乎只发生在已弃用的 django 1.5 版下。

    如果我在nginx configuration中正确设置了server_name(例如mydomain.com),那么nginx会将IP地址直接访问视为无效请求。

    如果我没有在ALLOWED_HOSTS 中包含 IP 地址,当用户访问 IP 地址时,django 会向管理员帐户报告。与此相反,当我在ALLOWED_HOSTS 中包含 IP 地址时,django 不会报告。

    以下是我的一个总结。

    (1) 仅在ALLOWED_HOSTS 中包含“domain.com”

    (2) 从nginx 端正确设置默认服务器和server_name

    (3) 如果您不想在这种情况下发送错误邮件,请编辑 settings.py

    中的logging 部分

    【讨论】:

      猜你喜欢
      • 2017-07-29
      • 1970-01-01
      • 2015-05-21
      • 2011-06-15
      • 2021-12-25
      • 2011-05-05
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多