Django 如何设置nginx conf(403禁止页面)通过OWASP安全测试

Django 如何设置nginx conf(403禁止页面)通过OWASP安全测试,django,nginx,owasp,Django,Nginx,Owasp,这是我的nginx配置: upstream django { server 127.0.0.1:8001; } server { listen 80; server_name 127.0.0.1; charset utf-8; #security add_header X-Content-Type-Options "nosniff"; add_header X-Frame-Options "DENY";

这是我的nginx配置:

upstream django {

    server 127.0.0.1:8001; 
}

server {
    listen     80;
    server_name 127.0.0.1;  
    charset     utf-8;

    #security
    add_header X-Content-Type-Options "nosniff";
    add_header X-Frame-Options "DENY";
    add_header X-XSS-Protection "1; mode=block";

    location /static {

        alias /usr/share/nginx/mysite/staticfiles;  

    }

    location / {
        uwsgi_pass  django;
        include     /etc/nginx/uwsgi_params; 
    }
}
和my settings.py:

SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SESSION_COOKIE_SECURE = True
SECURE_FRAME_DENY = True
但是静态文件仍然存在安全问题,我还应该设置什么

更新

正如@lincontroll所说,我发现nginx403页面似乎没有安全保护。我应该如何设置它


这不是django的问题。Nginx返回错误代码(403)用于直接访问路径,如/static/,指令add_header不适用于带有错误代码的响应。如果使用nginx version>=1.7.5,请添加第三个参数“always”以添加_头指令:

add_header X-Content-Type-Options "nosniff" always;
如果您的nginx版本低于1.7.5,我知道以下简单的方法来解决您的问题:

  • 将nginx更新至版本>=1.7.5
  • 启用指令
    自动索引打开为您/静态位置。(警告:您的所有静态文件将对任何人可用,包括搜索引擎!)
  • 在创建/静态位置之前添加以下位置:

    location ~* ^/static.*/$ { add_header X-Content-Type-Options "nosniff"; # ... you other headers ... add_header 'Content-Type' 'text/html; charset=UTF-8'; return 200; } 位置~*^/static.*/${ 添加标题X-Content-Type-Options“nosniff”; #…你还有其他标题。。。 添加标题“内容类型”“文本/html;字符集=UTF-8”; 返回200; }

我的版本是1.6.3。我仍然没有找到解决方案。非常感谢。与您分享我发现的另一种方法:添加
error\u第403/403页
/403
是我的网页