以前、
Content Security Policy (CSP) の
で、
最近 AMP 向けの
再集計して、
CSP の report の 結果に 影響しそうな ことで、 最近実施した こと
最近実施した
Google Tag Manager の
設置 AMP 対応
現在の ポリシー定義
現状の
Content-Security-Policy-Report-Only: default-src 'self'; frame-src 'self' googleads.g.doubleclick.net staticxx.facebook.com *.disqus.com disqus.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' pagead2.googlesyndication.com www.google-analytics.com *.disqus.com c.disquscdn.com; style-src 'self' 'unsafe-inline' *.disquscdn.com; img-src 'self' *.disqus.com *.disquscdn.com *.googleusercontent.com *.google.com *.googledrive.comgoogledrive.com data:; connect-src 'self' *.disqus.com; font-src 'self' fonts.gstatic.com; report-uri /report/
CSPの レポートデータの 収集と、 集計に ついて
Content Security Policy (CSP) の
に
集計と、 修正方針
violated-directive
ごとの、blocked-uri
を
前回 Google データスタジオを
MongoDB の
集計の
- countViolatedDirectiveGroupByBlockedUri.js
var count = 0; // Query db.reports.aggregate([ { $match: { "violated-directive": violatedDirective, create_date: {$gte: ISODate(createDate)} } }, { $group: { "_id": { "blocked-uri": "$blocked-uri" }, "count": { "$sum": 1 } } }, { $sort: { "count": -1 } } ]).forEach(function(element){ if(count == 0) { print("###violated-directive = " + violatedDirective + "###") print("|" + "count" + "|" + "blocked-uri" + "|"); print("|:-------------------|:--------------|"); } count++; print("|" + element.count + "|" + element._id["blocked-uri"] + "|"); });
コマンドラインからは、
mongo localhost/csp_analyze --quiet --eval "var violatedDirective='script-src', createDate='2017-05-08T00:00:00.0Z'" countViolatedDirectiveGroupByBlockedUri.js
violated-directive
ごとの blocked-uri
の 集計結果
violated-directive : script-src
での 集計
- 結果
各ドメインごとの
設定要否
script-src
は、設定を していなかったのが、 許可設定していたつもりだった ドメイン まで、 report 対象に なっていました。 disqus.com
disqus のドメインなので 許可します。 www.googletagmanager.com
goolge tag manager のドメインなので、 許可します。 ssl.google-analytics.com
google analytics のドメインなので、 許可します。 cdn.ampproject.org
amp のcdn の ドメインなので、 許可します。 about
こちらは、よくわからなかったので 調べた ところ 以下の 記事を 見つけました。
ブラウザのAddOnが 影響して、 CSPの ポリシー違反と なるようです。 一旦無視します。
apache 2.4 - Content security policy: blocked uri “about” - Server Fault
content security policy - Why would I get a CSP violation for the blocked-uri ‘about’? - Stack Overflowdata URLでの
コンテンツの 埋込 に よる、 エラーです。
基本的にやってないのですが、 adsense などが やったりしているのかもしれません。
一旦無視して様子を 見ます。 max-x.men
aguse.jp: ウェブ調査 で調べた 限りは Spam サイトではないようです。
ユーザのブックマークレット的な ものの 設定で 出ているのかもしれません。
一旦無視して様子を 見ます。 xx.xcetkbl.com これは
前回も 見ました。
aguse.jp: ウェブ調査 で調べた 限りは Spam サイトではないようです。
一旦無視して様子を 見ます。
violated-directive : style-src
での 集計
- 結果
count | blocked-uri |
---|---|
11 | https://tagmanager.google.com/debug/css.css |
11 | https://fonts.googleapis.com/icon?family=Material+Icons+Extended |
各ドメインごとの
設定要否
以下、ドメインですが サイト上に リンク貼っているわけではないですが、
違反ポリシーが記録されていました。
こちら、何故記録されていたかと いうと、 google tag manager の debug 時に どうも 記録されるようです。 tagmanager.google.com
タグマネージャのサイトの ドメインです。 デバック起動時に 読み込まれるようなので、 許可設定しました。 fonts.googleapis.com こちらは、
タグマネージャの デバッグウィンドウを 切り替えてると、
fontの読み込みが 行われますが、 その 際に 設定されていました。
許可設定しました。
violated-directive : frame-src
での 集計
- 結果
各ドメインごとの
設定要否 kemsakurai.github.io
自分自身のgithub.ioドメインです。
これは許可して おきます。 xx.xcetkbl.com また、
こいつが います。
aguse.jp: ウェブ調査 で調べた 限りは Spam サイトではないようです。
一旦無視して様子を 見ます。 d-16772114932630796498.ampproject.net 等
これは、amp ページの 場合に、 読み込まれる、 https://d-3111818505141536503.ampproject.net/1499459975276/frame.html
といった 形式の iframe で 出力されていました。
実際何に使用しているのか 不明ですが、 必ず 出るようなので、 許可設定して おきます。 data
件数が少ないため、 一旦無視して 様子を 見ます。 gateway.zscalertwo.net
これは、セキュリティソフトミドルウェアで 出力されているように 思います。
件数が少ないため、 一旦無視して 様子を 見ます。
Zscaler - 製品情報|ノックス株式会社swg-msg.securewg.jp
これも、セキュリティソフトミドルウェアで 出力されているように 思います。
件数が少ないため、 一旦無視して 様子を 見ます。
WebセキュリティならWebゲートウェイサービス - IIJ
violated-directive : connect-src
での 集計
- 結果
各ドメインごとの
設定要否 pagead2.googlesyndication.com
AMP 広告ユニットを作成する - AdSense ヘルプ
に記載が ありますが、 amp の adsbygoogle.js
の読み込み先ドメインに なります。
許可します。3p.ampproject.net
Changes from ads.ampproject.net to 3p.ampproject.net · Issue #224 · ampproject/amphtml という Issueが あるので、 amp関連の ドメインかと 思われます。
許可します。www.googletagmanager.com
Google tag manager のドメインなので 許可します。 d-8663767972041812495.ampproject.net 等
これは、amp ページの 場合に、 読み込まれる、 https://d-3111818505141536503.ampproject.net/1499459975276/frame.html
といった 形式の iframe で 出力されていました。
実際何に使用しているのか 不明ですが、 必ず 出るようなので、 許可設定して おきます。 csi.gstatic.com
野良黒gstatic.comってなんだこいつなんだ
ASCII.jp:現れては消える 奇妙な サイトを 追う ブルーコートの 研究者の 話 (1/2)
を読む限り、 google の cdn のようなので 許可します。
violated-directive : img-src
での 集計
- 結果
各ドメインごとの
設定要否
ここは、設定自体してなかったのか、 過去に 設定した 覚えの ある ドメインが 多く 出力されていました。 googledrive.com
Google Drive のドメインです。 許可します。 drive.google.com
Google Drive のドメインです。 許可します。 www.gstatic.com
Google のCDI の ドメインです。 許可します。 www.monotalk.xyz
自サイトのドメインです。 許可します。 ssl.gstatic.com
Google のCDI の ドメインです。 許可します。 ir-jp.amazon-adsystem.com
Amazon アソシエイトのドメインです。 許可します。 ms-browser-extension
IEのブラウザの plugin かなにかで 出力されているようです。 一旦無視します。
CSP Report 収集と実レポートの 考察 | blog.jxck.io
violated-directive : font-src
での 集計
- 結果
- 各ドメインごとの
設定要否
ここは、正直何を トリガーで 読み込みに いっているのか、
よくわかりませんでした。 一旦無視します。 - themes.googleusercontent.com
- sxt.cdn.skype.com
- css.zohostatic.com
violated-directive : object-src
での 集計
- 結果
count | blocked-uri |
---|---|
35 | https://pagead2.googlesyndication.com |
- 各ドメインごとの
設定要否 - pagead2.googlesyndication.com
AMP 広告ユニットを作成する - AdSense ヘルプ
に記載が ありますが、 AdSense の ドメインに なります。
許可します。
- pagead2.googlesyndication.com
変更後の ポリシー定義
出力された 定義
変更後の
Content-Security-Policy-Report-Only: script-src 'self' 'unsafe-inline' 'unsafe-eval' pagead2.googlesyndication.com www.google-analytics.com *.disqus.com c.disquscdn.com disqus.com *.googletagmanager.com *.google-analytics.com *.ampproject.org; style-src 'self' 'unsafe-inline' *.disquscdn.com *.google.com *.googleapis.com; default-src 'self'; frame-src 'self' googleads.g.doubleclick.net staticxx.facebook.com *.disqus.com disqus.com kemsakurai.github.io *.ampproject.net; img-src 'self' *.disqus.com *.disquscdn.com *.googleusercontent.com *.google.com *.googledrive.comgoogledrive.com data: googledrive.com drive.google.com www.gstatic.com www.monotalk.xyz ssl.gstatic.com ir-jp.amazon-adsystem.com ssl.google-analytics.com; connect-src 'self' *.disqus.com; object-src pagead2.googlesyndication.com; font-src 'self' fonts.gstatic.com; report-uri /report/
追記
firefox で
Content Security Policy: ディレクティブ ‘frame-src’ は<wbr>推奨されません。<wbr>代わりに<wbr>ディレクティブ ‘child-src’ を<wbr>使用してください。<wbr>
と
CSP ディレクティブ frame-src が
とのことで、
今後
まだ、
2、
以上です。
コメント