拥有CSP(内容安全策略)时,允许跨域加载字体

时间:2018-07-18 16:10:16

标签: apache .htaccess cross-domain content-security-policy

我在一个客户要求我们在htaccess文件中实施内容安全策略(CSP)的网站上工作。这是一个Drupal 8网站(不是在这里有所作为)。

我们还使用ico moon实现了一些自定义图标字体。主要站点和子域可以很好地加载。

但是,客户选择了一种翻译解决方案,该解决方案可以通过第三方代理运行该站点的法语和西班牙语版本。这带来了很多挑战。其中之一是自定义图标字体由于CSP而无法加载。

当您检查并进入Chrome中的“网络”标签时,两个文件(ttf和woff)的状态均为“(已取消)”。

我已经四处摸索,发现“ font-src”指令已添加到htaccess文件中。 (参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src)。

以下是我们的CSP标头的过滤后的版本:

Header always set Content-Security-Policy "default-src 'self' 'unsafe-inline' *.mycorporatesite.com *.doubleclick.net *.optnmstr.com *.gstatic.com localhost:8443 data: *.acquia.com; \
script-src 'self' 'unsafe-inline' 'unsafe-eval' *.mycorporatesite.com *.doubleclick.net *.google.com *.googletagmanager.com *.google-analytics.com \
*.googleadservices.com *.googleapis.com bat.bing.com \
*.facebook.net *.crazyegg.com *.quantcount.com st.getsitecontrol.com *.yimg.com snap.licdn.com sp.analytics.yahoo.com \
*.addtoany.com *.ads.linkedin.com *.newrelic.com *.nr-data.net localhost:8443 *.optnmstr.com \
*.cloudflare.com data: *.acquia.com *.optmstr.com *.bizographics.com; \
style-src 'self' 'unsafe-inline' *.mycorporatesite.com *.googleapis.com *.cloudflare.com *.optnmstr.com *.google.com; \
font-src 'self' *.mycorporatesite.com *.googleapis.com *.cloudflare.com *.optnmstr.com *.google.com; \
img-src 'self' *.mycorporatesite.com bat.bing.com *.optnmstr.com *.googleapis.com *.google-analytics.com *.doubleclick.net *.facebook.com *.google.com *.quantserve.com *.gstatic.com *.boldchat.com *.optmstr.com; \
child-src 'self' *.mycorporatesite.com *.googletagmanager.com *.optnmstr.com *.doubleclick.net *.youtube.com *.vimeo.com; \
frame-ancestors 'self' *.mycorporatesite.com ; \
connect-src 'self' *.mycorporatesite.com *.appcues.net *.optnmstr.com *.optmstr.com *.gstatic.com localhost:8443 data: *.acquia.com wss://*.appcues.net *.nr-data.net;"

重要的是:

font-src 'self' *.mycorporatesite.com *.googleapis.com *.cloudflare.com *.optnmstr.com *.google.com;

我尝试使用和不使用“ self”指令。 “ * .mycorporatesite.com”是我客户域的占位符。

我们能够使用上面看到的“ img-src”指令修复图像。但是我们对“ font-src”不太满意。

要从本质上显示为另一个域的两个字体文件(由于翻译代理设置),我该怎么办?

0 个答案:

没有答案