[英]Where can Content-Security-Policy be configured?
對於客戶,我正在其網站上實施Facebook Pixel,以允許他們收集營銷統計信息。 Facebook Pixel是使用<head>
標記中的以下Javascript實現的:
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,
document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '*****************');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1" src="https://www.facebook.com/tr?id=***************&ev=PageView&noscript=1" />
</noscript>
如您所見,該腳本正在connect.facebook.net
域上調用Javascript文件。 將代碼上傳到生產服務器后,由於違反了Content-Security-Policy
指令,我在Chrome控制台中收到以下錯誤:
Refused to load the script 'https://connect.facebook.net/en_US/fbevents.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-inline' 'unsafe-eval' platform.twitter.com s3.amazonaws.com cdn.ckeditor.com cdn.syndication.twimg.com www.google-analytics.com ajax.googleapis.com player.vimeo.com".
我已經瀏覽了網站的源代碼(它是用PHP內置的),並且Content-Security-Policy
指令未在此處配置。 .htaccess
文件中也沒有。 盡管我不太確定,是否可以在.htaccess
文件中完成此操作。
由於在錯誤信息,以及在上面的截圖中看到, 有一個Content-Security-Policy
某處定義的指令,我需要找到它,這樣我就可以有白名單Facebook的域。 我在想,這可能是在服務器級別的httpd.conf
完成的,該文件我無法訪問,因為該網站由外部托管提供商托管。
所以我的問題是:如果不在PHP代碼,html <meta http-equiv>
屬性或httpd.conf
文件中,則可以在哪里配置Content-Security-Policy
指令? 可以在其他地方完成嗎?
據我所知,以下是可以設置內容安全策略的唯一位置:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.