在Play中设置HTTP标头!框架Web应用程序

时间:2014-06-27 05:27:34

标签: security nginx http-headers playframework-2.1 owasp

我在哪里可以在Play中设置安全HTTP标头!框架Web应用程序项目?我想将X-Content-Type-OptionsnosniffX-Frame-Options等标题设置为DENY

我已尝试在nginx.conf文件中设置这些标头,但它无法使用ZAP工具,因为ZAP工具在将其设置到此文件后会发出警告,指出这些标头丢失。

link:https://github.com/playframework/playframework/pull/2524

我在Configuring Security Headers的文档中尝试了解决方案,但是包中没有类SecurityHeadersFilter

我正在使用Play! 2.2.1和Java用于控制器。

2 个答案:

答案 0 :(得分:0)

如果您将其用作Play应用的反向代理,可能最好的地方是nginx。您可以尝试在http块中添加标题,而不是在nginx配置的server部分中添加标题(根据your comment)。

server {
        listen 80;
        server_name *.something.com;

        location /stuff {
                alias ../;

                add_header X-Frame-Options deny; 
                add_header X-XSS-Protection "1; mode=block"; 
                add_header X-Content-Type-Options nosniff; 
                add_header X-Content-Security-Policy "default-src 'self'; script-src 'self' ssl.google-analytics.com; img-src 'self' ssl.google-analytics.com";
        }
        ...
}

导致标题设置正确:

Headers correctly set

使用OWASP ZAP tool我可以验证标头是否设置正确。 X-Frame-Options标题设置:

X-Frame-Options not set

设置X-Frame-Options标题 时:

X-Frame-Options is set

答案 1 :(得分:0)

升级到Play 2.3.1并按照playframework网站上的configure security headers instructions进行操作。请注意,升级到2.3。 1 是必不可少的2.3。 0 包含bug,需要一种解决方法才能实现。