Django + Nginx项目的HSTS标头-标头应由Django SecurityMiddleware还是Nginx设置?

时间:2019-05-02 07:09:14

标签: django nginx hsts

HSTS = HTTP严格传输安全性

Django Docs on HSTS

  

对于仅应通过HTTPS访问的网站,您可以通过设置“严格传输安全”标头指示现代浏览器拒绝通过不安全的连接(在给定的时间段内)连接到您的域名。这样可以减少您受到SSL剥离的中间人(MITM)攻击的可能性。

     

如果将SECURE_HSTS_SECONDS设置设置为非零整数值,SecurityMiddleware将在所有HTTPS响应上为您设置此标头。

不过,Nginx也可以在conf文件中通过添加以下行来设置此标头:

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains;";

所以问题是,我们是否应该通过在项目设置文件中添加HSTS设置来配置Nginx来设置此标头或Django SecurityMiddleware?

1 个答案:

答案 0 :(得分:2)

完全取决于您。如果您运行多个站点,则在Web服务器设置中设置全局值可能会更容易。但是,如果您在Django中进行设置,则将应用程序移至新的网络服务器会更容易。