使用本地 htaccess 文件实施内容安全策略 (Apache)

Has*_*ana 2 php apache .htaccess content-security-policy

我是网络开发新手,只想在某个网页上实施内容安全策略。

这是我到目前为止所做的: 1.这样设置标题:

Header set Content-Security-Policy "
    default-src 'self';
    script-src 'self';
" 
Run Code Online (Sandbox Code Playgroud)
  1. 进行此设置后出现 500 内部服务器错误。在某处读到必须启用 mod_headers 。所以启用它使用:
sudo a2enmod headers
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
  1. .htaccess 现在看起来像这样:
<IfModule mod_headers.c>Header set Content-Security-Policy "

    default-src 'self';

    script-src 'self';

"</IfModule>
Run Code Online (Sandbox Code Playgroud)

现在的问题是我现在没有收到任何错误,但标头仍未设置。如果我遗漏了什么,请告诉我。 我已经浏览了其他线程并遵循了整个路径: 如何实施内容安全策略? 还有其他一些问题。PS 我在 Ubuntu 14.04 上使用 Apache 和 PHP

Joh*_* T. 6

对于任何想要使用换行符的人(并且您将希望对非常复杂的 CSP 使用换行符),Apache 允许他们通过简单地以反斜杠 ( \ ) 结束一行来指示命令在下一行继续。例如(摘自哈桑的原始帖子):

<IfModule mod_headers.c>Header set Content-Security-Policy "\
    \
    default-src 'self'; \
    \
    script-src 'self'; \
    \
"</IfModule>
Run Code Online (Sandbox Code Playgroud)

请注意,反斜杠之前的空格并不重要;您可以在非空白字符后立即添加反斜杠,也可以添加一个或多个空格、制表符等,然后以斜杠结尾。空行必须包含反斜杠作为该行的最后一个字符。

参考: https: //httpd.apache.org/docs/current/configuring.html

httpd 配置文件每行包含一个指令。反斜杠“\”可以用作一行上的最后一个字符,以指示该指令继续到下一行。反斜杠和行尾之间不能有其他字符或空格。