処理フォームの外部アクセスを制限する(CSP)

ワークフローアプリの処理フォームでは、ガイドパネル型データ項目やデータ項目の「説明」欄に、アプリ設計者が HTML・JavaScript を記述できます(Professional エディションで利用可能)。たとえば cdnjs.cloudflare.com から JavaScript ライブラリを読み込んだり、フォーム上のボタンから外部 API にデータを送信したりといった使い方が可能です。システム設定 – CSP では、こうしたブラウザ側の外部アクセスをコンテンツセキュリティポリシー(CSP)によって制限できます。

設定には システム管理権限 が必要です。ワークフロー基盤全体への共通設定です(アプリごとの設定はできません)。


CSP レポートで現状を把握する

CSP 設定画面の「CSP レポート」では、処理フォームから外部へのアクセスのうち、許可リストに登録されていないアクセスを確認できます。

  • ディレクティブ × 違反検知ホスト でグルーピングされ、件数とともに表示されます
  • CSV ダウンロードが可能です
  • 表示範囲は今日・昨日・今月・先月から選択できます

CSP の有効・無効にかかわらず、対象のアクセスはすべてレポートに記録されます。 制限を導入する前にまずこのレポートを確認することで、現在どのホストにアクセスしているかを把握できます。


CSP 許可リストを設定する

「CSP 許可リスト」では、許可する外部ホストを 2 種類のディレクティブ別に登録します。

制限項目制限する対象
スクリプトファイル取得(script-src)外部 JavaScript ファイルの読み込みcdnjs.cloudflare.com
データ通信(connect-src)JavaScript からの外部 API 通信(fetch / XHR)api.openai.com

安全な導入手順

  1. CSP レポートで現在のアクセス先を確認する レポートを「今月」や「先月」で確認し、ガイドパネルや説明欄に記述したスクリプトが実際にアクセスしているホスト名を洗い出します。
  2. ディレクティブ別に許可リストを作成する スクリプト読み込みは script-src、API 通信は connect-src に登録します。
  3. 「CSP による制限を有効にする」をオンにする 有効化後、CSP レポートの「ブロック(enforce)」でブロックされたアクセスを確認し、必要であればホストを追加します。

例:外部スクリプトの読み込みを許可する

ガイドパネルに次のような記述があるとします。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>

このページが表示されると、CSP レポートに次のような行が記録されます。

ディレクティブ違反検知ホスト件数
script-src-elemcdnjs.cloudflare.com1

レポートの「ディレクティブ」にはブラウザが報告する値(外部スクリプトの読み込みは script-src-elem)がそのまま表示されます。これは許可リストの 「スクリプトファイル取得」(script-src) に対応します。違反検知ホスト cdnjs.cloudflare.com を「スクリプトファイル取得」に追加すれば、このスクリプトの読み込みが許可されます。


HTTP 接続先制限との違い

似た機能ですが、制限する対象の「場所」が異なります。

機能制限する対象
HTTP 接続先制限ワークフローエンジン(サーバー側)が行う外部 HTTP 通信(自動工程・開始イベントなど)
CSP処理フォーム(ブラウザ側)が行う外部アクセス(HTML/JavaScript)

両方を併用することで、ワークフロー基盤からの外部通信を包括的に管理できます。


See also

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む