内容安全,政策无效的命令

问题描述:

添加以下行到我的.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, 大卫

我不是Apache的专家,但内容安全策略是响应头。 http://httpd.apache.org/docs/2.2/mod/mod_headers.html

添加这些行到您的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