【问题标题】:Implement Content Security Policy using local htaccess file (Apache)使用本地 htaccess 文件 (Apache) 实施内容安全策略
【发布时间】:2021-08-26 03:06:23
【问题描述】:

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

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

Header set Content-Security-Policy "
    default-src 'self';
    script-src 'self';
" 
  1. 在此设置后出现 500 内部服务器错误。阅读必须启用 mod_headers 的地方。所以启用它使用:
sudo a2enmod headers
sudo service apache2 restart
  1. .htaccess 现在看起来像这样:
<IfModule mod_headers.c>Header set Content-Security-Policy "

    default-src 'self';

    script-src 'self';

"</IfModule>

现在,问题是我现在没有收到任何错误,但标题仍未设置。如果我遗漏了什么,请告诉我。 我已经经历了其他线程并使用以下方法遵循了整个路径: How to implement content security policy? 以及其他一些问题。 P.S 我在 Ubuntu 14.04 上使用 Apache 和 PHP

【问题讨论】:

  • 你在启用这些模块后是否重启了 apache 服务器?
  • 是的,我确实重启了 apache 服务器。

标签: php apache .htaccess content-security-policy


【解决方案1】:

您是否尝试过设置没有换行符的标题?我不确定 apache 将如何附加标头,但我一直认为(如果我错了,请纠正我)它们是基于换行符解析的。

所以尝试以下方法:

<IfModule mod_headers.c>
    Header set Content-Security-Policy "default-src 'self'; script-src 'self';"
</IfModule>

您还可以通过 PHP 设置标题,这将使您的 Content-Security-Policy 独立于 Web 服务器。

【讨论】:

  • 试过了,没用。也只尝试了 Header set Content-Security-Policy "default-src 'self'; script-src 'self';"
  • 你能指导如何通过 PHP 来代替吗?
【解决方案2】:

好吧,伙计们,它通过添加相同的行得到解决,即

标头设置 Content-Security-Policy "default-src 'self'; script-src '自己';"

但在文件/etc/apache2/apache2.conf 中,它起作用了。从中得到帮助:Use Content Security Policy scipt-src sha feature with Apache HTTP Server

【讨论】:

  • 谢谢!节省了我很多时间(y)
【解决方案3】:

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

<IfModule mod_headers.c>Header set Content-Security-Policy "\
    \
    default-src 'self'; \
    \
    script-src 'self'; \
    \
"</IfModule>

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

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

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

【讨论】:

    猜你喜欢
    • 2015-04-27
    • 2019-05-29
    • 2018-04-22
    • 1970-01-01
    • 2017-09-07
    • 2016-06-22
    • 2016-09-12
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多