0

お客様のために、Facebook Pixelをウェブサイトで実装して、マーケティング統計を収集できるようにしています。 Facebookのピクセルが<head>タグには、次のJavaScriptで実装されています。Content-Security-Policyはどこで設定できますか?

<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ファイルを呼び出しています。私はPHPで構築されたWebサイトのソースコード(通過した

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". 

:コードは本番サーバにアップロードされている場合、私が原因Content-Security-Policyディレクティブの違反に、クロームコンソールで次のエラーを取得します)、Content-Security-Policyディレクティブはどこにも設定されていません。また、.htaccessファイルにもありません。私は確信していませんが、の場合は、.htaccessファイルで行われます。

編集:(応答ヘッダーの追加画像) Response headers

エラーメッセージならびに上記のスクリーンショットに示されているように、そこどこかで定義されたContent-Security-Policyディレクティブと私はそれを見つける必要がありますFacebookドメインをホワイトリストに登録することができます。私は、ウェブサイトが外部のホスティングプロバイダによってホストされているので、これはアクセスできないファイルhttpd.confのサーバレベルで行われている可能性があると考えています。

だから私の質問は:はContent-Security-PolicyディレクティブはPHPコード、HTML <meta http-equiv>属性またはhttpd.confファイルでないに設定することができます?これはどこで行うことができますか?

+0

応答ヘッダーにContent-Security-Policyはありますか。 – jburtondev

+0

メタタグとしてHTMLにない場合は、httpd.confやvhostの設定のいずれかで、Apacheの設定になければなりません。私は、apacheディレクトリ内のすべての設定を確認してgrepします。それがない場合は、Apacheとブラウザの間にフロントエンドサーバーがありますか?彼らはヘッダーを追加している可能性があります。 – AfroThundr

+0

@jburtondevはい、私が追加したスクリーンショットに見られるように、CSPヘッダーは応答ヘッダーの間に存在します。 AfroThundr:CSPがHTMLにないため、サーバーレベルで設定する必要があります。 vhostの設定を思い出させてくれてありがとう。 – RonRonDK

答えて

0

限り、私は承知しているように、これらはコンテンツセキュリティポリシーを設定することができる唯一の場所である:

  • Apacheの設定

    1. メタタグ(つまり、ヘッダだとしてあなたの例ではない場合) 、ether apache2.conf/httpd.conf、またはメインファイルに連結されたvhost/configファイルの1つ。あなたができる場合はサイトをチェックしてください
    2. .htaccess、私はあなたが直接Apacheの設定にアクセスすることができない場合はここに当てはまるでしょう。
    3. PHPのheader()は、ヘッダを手動で作成している場合に機能します。
  • 関連する問題