どのようにお手伝いできますか?

ご用件を簡単にお知らせください。メールで返信します。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
トップページへ

セキュリティとContent Security Policy

必要なCSP項目、インラインスクリプトやunsafe-inlineなしで動く理由、ページからの隔離、ブラウザーに置いてはいけない秘密情報を説明します。

Content Security Policy

第三者フォント、トラッキングピクセルを読み込まず、evalも使いません。shadow DOMのconstructable stylesheets(adoptedStyleSheets)でスタイルを設定し、style-srcの対象外です。そのため、unsafe-inlineもunsafe-evalも不要です。

reactive.chatのアドレスの場合:

Content-Security-Policy:
  script-src 'self' https://cdn.reactive.chat;
  connect-src 'self' wss://ws.reactive.chat https://ws.reactive.chat;
  img-src 'self' data: https:;

独自ドメインの場合:

Content-Security-Policy:
  script-src 'self' https://chat.your-company.com;
  connect-src 'self' wss://chat.your-company.com https://chat.your-company.com;
  img-src 'self' data: https:;

各項目:

Safari 16.4より前などの古いブラウザーは、<style>にフォールバックし、厳格なstyle-srcがブロックします。動作しますが、スタイルなしになります。

インラインスクリプトは不要

導入は属性付き<script src>だけです。独自のidentify、track、openはスクリプトファイルか、nonce付きのインラインに置きます。

<script nonce="R4nd0mN0nc3">
  ReactiveChat('identify', { userId: '4711', userHash: '…', exp: 1792503600 });
</script>

インラインなしのテンプレートは訪問者の本人確認にあります。

Subresource Integrity

loader.jsは名前にバージョンがなく継続更新されるため、integrityを付けると次の更新で停止します。コアは内容ハッシュ付きです(構成)。SRIが必須なら、loader.jsを自己配信し、data-rc-ws-urlを指定します(クイックスタート)。更新も自分で行ってください。

ページからの隔離

オリジン検証

許可するオリジンのドメインからだけ接続を受け付け、サブドメインも含みます。第三者がサイトキーをコピーしてもorigin_deniedです。空一覧では検証しないため、必ず登録してください。通信参照。

サイトキー自体は、全ページのソースにあり、秘密情報ではありません。

ブラウザーに絶対に置かないもの

アプリ、公開リポジトリ、ページのアドレスにも置かないでください。

不正利用対策

サーバーが、接続とアドレス単位で接続、フレーム、メッセージを制限し、繰り返すと1008でブロックします。独自プロキシでは、正しいキーがある場合だけ訪問者単位で数え、なければ全員がプロキシのアドレスを共有します。上限と利用枠参照。

次:独自ドメイン

最終更新: