我是Web Dev的新手,只想在某个网页上实现内容安全策略。
这是我到目前为止所做的: 1.以这种方式设置标头:
Header set Content-Security-Policy "
default-src 'self';
script-src 'self';
"
- 此设置后,内部服务器错误出现了500个内部服务器错误。阅读必须启用mod_headers的地方。因此使用: 启用它
sudo a2enmod headers sudo service apache2 restart
- .htaccess现在看起来像这样:
<IfModule mod_headers.c>Header set Content-Security-Policy " default-src 'self'; script-src 'self'; "</IfModule>
现在,问题是我现在没有遇到任何错误,但仍未设置标头。如果我缺少某些东西,请告知我。我已经浏览了其他线程,并遵循了整个路径:如何实施内容安全策略? 还有其他一些问题。P.S我在Ubuntu上使用Apache和PHP 14.04
对于任何想要使用线路休息的人(并且您将要使用flin Breaks用于真正复杂的CSP),Apache可以通过简单地用后挡板结束一条线()指示该命令在下一行上继续。例如(取自Hassan的原始帖子):
<IfModule mod_headers.c>Header set Content-Security-Policy "
default-src 'self';
script-src 'self';
"</IfModule>
请注意,后斜线之前的空白无关紧要。您可以在非Whitespace字符之后立即具有后斜线,也可以添加一个或多个空格,标签等,然后以斜线结尾。空白行必须包括后斜线作为行上的最后一个字符。
参考:https://httpd.apache.org/docs/current/configuring.html
httpd配置文件每行包含一个指令。backSlash" &quot可以用作行上的最后一个字符,以表明该指令继续在下一行上。后斜线和行末端之间必须没有其他字符或空白。
您是否尝试过无需线断路设置标头?我不确定Apache将如何附加标题,但我一直认为(如果我错了,请纠正我),它们会根据换行符进行解析。
所以尝试以下内容:
<IfModule mod_headers.c>
Header set Content-Security-Policy "default-src 'self'; script-src 'self';"
</IfModule>
您还可以通过 php 设置标头,该标题将使您的Content-Security-Policy
独立于Web服务器。
好的,所以它通过添加相同的行而解决了。
标题集content-security-policy" default-src'self'; script-src '自我';"
但是在文件/etc/apache2/apache2.conf
中,它起作用。从此获得帮助:使用Apache HTTP Server