---
schema_version: "1"
id: e5033e7032b2984b1412ad041c5007cf6202bb3063fcb153cd947cfa308ba842
title: JSON 脅威保護ポリシー
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/gateway/1.9/policies-included-json-threat-protection.md
canonical_url: https://docs.mulesoft.com/jp/gateway/1.9/policies-included-json-threat-protection
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 4bf1b91aa5b15554ed0666c81f4abe27a12a42428a914c9959aa80c05d91fc6d
description: MuleSoft Documentation Site
release: "1.9"
latest: false
---
# JSON 脅威保護ポリシー

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>ポリシー名</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">JSON 脅威保護</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>概要</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">API 要求内の悪意のある JSON から保護する</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>カテゴリ</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">セキュリティ</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>使用可能な最小 Flex Gateway バージョン</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">v1.4.0</p></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>返される状況コード</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">400 - Bad Request</p></td>
</tr>
</tbody>
</table>

## [](#概要)概要

JSON 要求を処理するアプリケーションは、要素とネストレベルの異常な膨張により特徴付けられる攻撃を受けやすくなっています。攻撃者は再帰的な技法を使用してメモリリソースをコンシュームします。多くの場合、アプリケーションデータのサイズが劇的に変動することは、セキュリティの問題が発生していることを示します。JSON 脅威保護ポリシーは、このような侵入からアプリケーションを保護するのに役立ちます。

Anypoint Platform 環境への攻撃の検出が困難である場合は、JSON 脅威保護に保護レイヤーを追加したサービスアーキテクチャを設計する必要があります。

## [](#ポリシーのパラメーターの設定)ポリシーのパラメーターの設定

### [](#local-mode)Flex Gateway のローカルモード

ローカルモードでは、宣言型の設定ファイルを使用してポリシーを API に適用します。以下のポリシー定義とパラメーターの表を参照してください。

\- policyRef:
    name: json-threat-protection-flex
  config:
    maxContainerDepth: <int> // OPTIONAL
    maxObjectEntryCount: <int> // OPTIONAL
    maxObjectEntryNameLength: <int> // OPTIONAL
    maxArrayElementCount: <int> // OPTIONAL
    maxStringValueLength: <int> // OPTIONAL

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">必須または省略可能</th>
<th class="tableblock halign-left valign-top">デフォルト値</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>maxContainerDepth</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-1</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>最大ネスト深度を指定します。JSON では、コンテナ (オブジェクトおよび配列) を任意の順序で任意の深度までネストできます。-1 の指定は、項目値に制限がないことを意味します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>maxObjectEntryCount</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-1</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>オブジェクトの最大エントリ数を指定します。-1 の指定は、項目値に制限がないことを意味します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>maxObjectEntryNameLength</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-1</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>オブジェクトのエントリ名の最大文字列長を指定します。-1 の指定は、項目値に制限がないことを意味します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>maxArrayElementCount</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-1</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>配列の最大要素数を指定します。-1 の指定は、項目値に制限がないことを意味します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>maxStringValueLength</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-1</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>最大文字列値長を指定します。-1 の指定は、項目値に制限がないことを意味します。</p>
</div></div></td>
</tr>
</tbody>
</table>

#### [](#リソースの設定例)リソースの設定例

```yaml
- policyRef:
    name: json-threat-protection-flex
  config:
    maxContainerDepth: 10
    maxObjectEntryCount: 10000
    maxObjectEntryNameLength: 80
    maxArrayElementCount: 10000
    maxStringValueLength: 255
```

### [](#connected-mode)管理 Flex Gateway および Flex Gateway の接続モード

UI からポリシーを API インスタンスに適用するときに、以下のパラメーターが表示されます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 60%;">
<col style="width: 10%;">
<col style="width: 10%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>項目</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>説明</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>デフォルト</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>必須</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Container Depth (最大コンテナ深度)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">最大ネスト深度を指定します。JSON では、コンテナ (オブジェクトおよび配列) を任意の順序で任意の深度までネストできます。</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">-1</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum String Value Length (最大文字列値長)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">文字列値の最大長を指定します。</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">-1</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Object Entry Name Length (オブジェクトエントリ名の最大長)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">オブジェクトのエントリ名の最大文字列長を指定します</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">-1</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Object Entry Count (最大オブジェクトエントリ数)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">オブジェクトの最大エントリ数を指定します。</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">-1</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Array Element Count (最大配列要素数)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">配列の最大要素数を指定します。</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">-1</p></td>
<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
</tr>
</tbody>
</table>

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>-1 の値は、項目値に制限がないことを意味します。</p>
</div>
</td>
</tr>
</tbody></table>

## [](#ペイロードの例)ペイロードの例

ペイロードに次の JSON 例が含まれているとします。

{
   "Players":\[
      {
         "Name":"Sachin",
         "Email":"sachin.tendulkar@example.com"
      },
      {
         "Name":"Suryakumar",
         "email":"Surya@example.com"
      },
      {   "Name":"Bhuvi",
          "email":"bhuvi@example.com"
      },
      {
         "Name":"Jonty",
         "Email":"jonty@example.com"
      }
   \]
}

ポリシーでは、次のようにパラメーター値の例が定義されます。

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">値</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Container Depth (最大コンテナ深度)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Name</code>​ エントリと ​<code>Email</code>​ エントリの深度</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum String Value Length (最大文字列値長)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">28</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sachin.tendulkar@example.com</code>​ の長さ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Object Entry Name Length (オブジェクトエントリ名の最大長)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">7</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Players</code>​ オブジェクトエントリ名の長さ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Object Entry Count (最大オブジェクトエントリ数)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">各 ​<code>Players</code>​ オブジェクトのエントリ数</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum Array Element Count (最大配列要素数)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Players</code>​ 配列の要素数</p></td>
</tr>
</tbody>
</table>