2014-06-27 48 views
1

我在哪里可以在Play中设置安全HTTP标头!框架Web应用程序项目?我想设置标头,如X-Content-Type-OptionsnosniffX-Frame-OptionsDENY在Play中设置HTTP标头!框架Web应用程序

我试图在nginx.conf文件中设置这些标题,但它不能与ZAP工具一起使用,因为ZAP工具提供了一个警告,在将它们设置到此文件后缺少这些标题。

链接:https://github.com/playframework/playframework/pull/2524

我已经试过了文档中的解决方案上Configuring Security Headers但是类SecurityHeadersFilter不存在在包说。

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

+0

你的nginx配置是什么样的? 'SecurityHeadersFilter'只在[Play 2.3中添加](https://github.com/playframework/playframework/commits/7dd0229992cff5f99386cd46abb6dca7c9387fd2/framework/src/play-filters-helpers/src/main/scala/play/filters/headers/ SecurityHeadersFilter.scala) –

+0

在nginx.conf文件中,我添加了以下http {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'https://ssl.google-analytics.com; img-src'self'https://ssl.google-analytics .COM“; }是这样吗? – Bhagyashree

回答

0

如果您将其用作Play应用的反向代理,那么最好的做法是nginx。不要在你的nginx配置的http部分(根据your comment)添加标题,而是尝试将其添加到server块中。

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

+0

我在nginx.conf文件的服务器块中添加了头文件设置,但这也无法正常工作。有没有其他的方式来设置这些头在播放Web应用程序?以便它适用于应用程序中的所有网页。 – Bhagyashree

+0

当你说“不能正常工作”时,你的意思是头文件根本不存在? (你怎么测试它?)。你运行的是什么版本的nginx?进行配置后你重新启动了nginx吗?如果你用你的'nginx.conf'文件的相关部分编辑你的问题,这也会有帮助。 –

+0

当我将头文件添加到nginx.conf文件中时,然后我使用nginx重新调整应用程序。我正在通过使用ZAP工具攻击应用程序来测试标题,然后ZAP工具显示这些标题未设置的警报。那该怎么办? – Bhagyashree