CSPを使用したプラグインの操作
はじめに
コンテンツセキュリティポリシー(CSP)は、クロスサイトスクリプティング(XSS)攻撃などの脅威を防ぐためのセキュリティ標準です。ウェブサーバーでCSPが有効な場合、承認されたソースからのみコンテンツを読み込むことができ、明示的に許可されていないサードパーティのドメインへのリクエストはブロックされます。
ウェブソリューションに統合されたONLYOFFICE Docs(エンタープライズ版またはデベロッパー版)を使用していて、CSPが有効な場合、サードパーティのリソースを使用するプラグインはブロックされ、正しく動作しません。これを解決するには、それらのプラグインが使用するドメインをCSPの許可リストに追加する必要があります。
信頼できるドメインを追加する
CSPはContent-Security-Policy HTTPヘッダーで設定します。ヘッダーには、さまざまなタイプのコンテンツの許可されたソースを指定するディレクティブが含まれています。default-srcディレクティブは、独自のディレクティブが指定されていないリソースタイプに対して適用されます。'self'は、現在のドメインからのみコンテンツを読み込むことができることを意味します。
一般的なヘッダーは次のようになります:
Header set Content-Security-Policy "default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"
プラグインが必要な外部ドメインにアクセスできるようにするには、そのドメインをdefault-srcディレクティブに追加します:
default-src 'self' *.trusted-domain.com
これにより、指定されたドメインとそのサブドメインへのリクエストおよびそこからのコンテンツの読み込みが許可されます。外部アクセスが必要なプラグインごとにこれを繰り返します。
HTTPヘッダーの正確な場所は、ご使用のウェブサーバーと統合の設定によって異なります。この記事では基本的な原則を説明します。
プラグインが必要とするドメインを特定するには、ブラウザの開発者ツールを開き、ネットワークタブに移動して、プラグインを実行します。ブロックされた外部リクエストは失敗として表示され、それらのリクエストのドメインがCSPの許可リストに追加する必要があるドメインです。
例:YouTubeプラグインを許可する
youtubeプラグインはwww.youtube.comから動画コンテンツを読み込みます。このドメインをCSPの許可リストに追加しないと、プラグインによる動画の読み込みがブロックされます。
許可するには、*www.youtube.comをdefault-srcディレクティブに追加します:
Header set Content-Security-Policy "default-src 'self' *www.youtube.com; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"
サードパーティのリソースを使用する他のインストール済みプラグインにも同じ方法を適用し、必要なドメインを同様にディレクティブに追加します。