# 配信とセキュリティ（SRI）

Pushly は、Subresource Integrity（SRI）を使用して、固定された変更不可の Web SDK バージョンを読み込むことをサポートしています。

このオプションは、CSP ポリシーの強制など、厳格なセキュリティ要件を持つお客様向けです。ほとんどのお客様は、引き続き最新の SDK を使用してください。

***

#### SRI はいつ使うべきですか？

SRI は、次の要件がある場合にのみ使用してください：

* サードパーティスクリプトの暗号学的検証
* の適用 `require-sri-for script` Content Security Policy で
* SDK の更新がいつ発生するかを明示的に制御すること

これらの要件がない場合は、 [最新の SDK](https://documentation.pushly.com/pushly-ja/integration/webpusshu/kuikkusutto) を使用してください。

***

#### 固定された SDK スニペットの例（SRI）

```html
<script
  src="https://cdn.p-n.io/sdk/web/pushly@3.1.0.min.js"
  integrity="sha384-REPLACE_WITH_HASH"
  crossorigin="anonymous"
  async
  data-domain-key="DOMAIN_KEY">
</script>
```

これにより、変更されることのない特定の SDK バージョンが読み込まれます。

***

#### integrity ハッシュを取得する

各 SDK リリースの integrity ハッシュは、リリースマニフェストに公開されています。

バージョン 3.1.0 の場合：

```
https://cdn.p-n.io/sdk/web/releases/3.1.0/manifest.json
```

次を探してください： `files[].integrity` フィールドを見つけ、その値を次にコピーします： `integrity` 属性。

***

#### 固定された SDK のアップグレード

固定された SDK は自動更新されません。

アップグレードするには：

1. スクリプト内の SDK バージョンを更新します `src`
2. 対応する `integrity` ハッシュ
3. 更新されたスニペットをデプロイします

```diff
- src="https://cdn.p-n.io/sdk/web/pushly@3.1.0.min.js"
- integrity="sha384-OLD_HASH"
+ src="https://cdn.p-n.io/sdk/web/pushly@3.2.0.min.js"
+ integrity="sha384-NEW_HASH"
```

スニペットを更新しない場合、サイトは古い SDK を無期限に実行し続けます。
