LoginSignup
6
1

More than 3 years have passed since last update.

Safari 12 で発生する「Content Security Policy」バグのメモ

Posted at

はじめに

Qiitaに初めて投稿します「Saguzi」と申します。
普段はHTML/CSSをベタ打ちで趣味程度にWebデザインを嗜んでいます。
初回は遭遇したバグの記録とか。

遭遇したエラー

私はMacでPHPの開発を行っていたのですが、
GoogleのreCAPTCHA v3を導入している際にSafariで下記のようなエラー文に遭遇しました。
The source list for Content Security Policy directive 'script-src' contains an invalid source: ''strict-dynamic''. It will be ignored.
私の環境では3つ、エラーとして出力されていました。
これは一体何なんでしょうか。

コンテンツセキュリティポリシー

以下はMozillaが提供するMDN Web Docsからの引用です。

コンテンツセキュリティポリシー (CSP) は、クロスサイトスクリプティング (XSS) やデータインジェクション攻撃などのような、特定の種類の攻撃を検知し、影響を軽減するために追加できるセキュリティレイヤーです。これらの攻撃はデータの窃取からサイトの改ざん、マルウェアの拡散に至るまで、様々な目的に用いられます。
MDN Web Docs - https://developer.mozilla.org/ja/docs/Web/HTTP/CSP

要するに勝手にHTMLやJavaSciptを書き換えてサーバにダメージを与えるような攻撃から守ってくれるものです。
しかし当該ソースには'script-src'の記述はありません。何故エラーが出るんでしょうか…?

Safari 12から発生しているバグ

こちらはGitHubのIssueです。

Safari bug, The source list for Content Security Policy directive 'script-src' contains an invalid source: ''strict-dynamic''. It will be ignored.
https://github.com/szchenghuang/react-google-invisible-recaptcha/issues/23
https://github.com/google/google-api-javascript-client/issues/397

これによると、12.0 (13606.2.11)でバグの再現を確認していると言う事でした。
私の環境(現時点での最新版)は12.1.2 (14607.3.9)です。

つまり、Version 12.0から発生したバグは現在も残っています。
詳しく掘り下げていませんが、どうやらGoogleのreCAPTCHA絡みのバグのようです。
上掲のIssueにも書かれていますが、(CSPを使用していなければ)無視しても構いません

最後に、Issueのコメントを引用して締めくくりたいと思います。

This is extremely painful for users using Safari.
(これは、Safariを使用しているユーザーにとって非常に苦痛です。)
https://github.com/google/google-api-javascript-client/issues/397#issuecomment-471679235

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1