内容安全,政策无效的命令
问题描述:
添加以下行到我的.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, 大卫
答
添加这些行到您的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。
感谢您的回答。你能解释为什么你在设置标题之前首先取消设置标题? – Gunni 2016-02-05 10:19:01
我想这是为了避免重复,以防万一它们已经设置得更早。 – Bertrand 2016-02-16 10:29:51
根据Header set指令的[documentation](http://httpd.apache.org/docs/current/mod/mod_headers.html#header),@ Bertrand31似乎不是必需的:'响应头被设置,用这个名字替换任何以前的标题。该值可以是一个格式字符串。' – goredwards 2016-08-23 14:01:03