2013-05-05 94 views
4

添加以下行到我的.htacces文件:內容安全,政策無效的命令

Content-Security-Policy: default-src 'self' 
X-Content-Security-Policy: default-src 'self' 
X-WebKit-CSP: default-src 'self' 

但我始終得到了以下錯誤:

Invalid command 'Content-Security-Policy:', perhaps misspelled or defined by a module not included in the server configuration 

我不明白這一點。我必須激活哪個Apache模塊?這些線路有什麼問題?

THX, 大衛

回答

8

添加這些行到您的httpd.conf配置文件,或者您的虛擬主機段裏,或你的裏面.htaccess文件:

Header unset Content-Security-Policy 
Header add Content-Security-Policy "default-src 'self'" 
Header unset X-Content-Security-Policy 
Header add X-Content-Security-Policy "default-src 'self'" 
Header unset X-WebKit-CSP 
Header add X-WebKit-CSP "default-src 'self'" 

您可能也有興趣加入這些頭:

Header set X-Content-Type-Options "nosniff" 
Header set X-XSS-Protection "1; mode=block" 
Header set X-Frame-Options "DENY" 
Header set Strict-Transport-Security "max-age=631138519; includeSubDomains" 

您必須啓用(LoadModule)mod_headers(如果尚未啓用),然後重新啓動apache。

+0

感謝您的回答。你能解釋爲什麼你在設置標題之前首先取消設置標題? – Gunni 2016-02-05 10:19:01

+0

我想這是爲了避免重複,以防萬一它們已經設置得更早。 – Bertrand 2016-02-16 10:29:51

+0

根據Header set指令的[documentation](http://httpd.apache.org/docs/current/mod/mod_headers.html#header),@ Bertrand31似乎不是必需的:'響應頭被設置,用這個名字替換任何以前的標題。該值可以是一個格式字符串。' – goredwards 2016-08-23 14:01:03