2014-06-27 49 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