CSP へのテーマスクリプトの自動追加

テーマに外部の JavaScript リファレンスを追加しようとする人々からのサポートトピックをよく目にします。デフォルトではコンテンツセキュリティポリシーがこれをブロックするため、管理者が CSP サイト設定(またはテーマ設定/修飾子)にスクリプトを手動で追加する必要があります。

しかし、@Johani さんがこれを改善する方法について素晴らしい提案をしてくれました。

テーマ開発者に管理 UI 内でコピペを繰り返させるのではなく、これを自動的に実行できます。テーマ内のすべての HTML を解析し、外部スクリプトの src を抽出して CSP に追加するのです。

結局のところ、繰り返し作業は人間よりもコンピューターの方が得意ですから!

それを実装する PR を作成しました:

「いいね!」 15

ローカル環境でいくつかのコンソールエラーが発生しています:

image

本番環境でも、https://CDN_SERVER/theme-javascripts/31657759d037d8c06397e9965a1113169100846e.js... という形式でソースが追加されているのが確認できます。これは、ポリシーですでに https://CDN_SERVER/theme-javascripts がホワイトリストに登録されているため冗長です。自動拡張は外部スクリプトソースにのみ制限したほうがよいでしょうか?

「いいね!」 6

@pmusaraj さん、ありがとうございます。CSP で無効な URL が配信されないようにするための追加チェックを実装し、テーマの JavaScript の URL も除外されるようにしました。

「いいね!」 7

これ、最高!@merefield さん、めっちゃカッコいいでしょ?

「いいね!」 1