適用対象のプロファイルが利用可能になると、Schema Profile 検出は次のフィールドを設定します。
| フィールド | 型 | ソース | 意味 | 利用できる場所 |
|---|---|---|---|---|
cf.schema_validation.learned.violated |
Boolean |
Learned Schema Profile | 評価したリクエストが学習済みプロファイルに違反すると true です。 |
Security Analytics と Custom Rules |
cf.schema_validation.uploaded.violated |
Boolean |
Uploaded schema | 評価したリクエストが提供済みスキーマに違反すると true です。 |
Security Analytics と Custom Rules |
Profile Analysis のサンプリングされた違反には、4 つの構造化フィールドがあります。
| フィールド | 型 | 意味 |
|---|---|---|
location |
String |
違反を含むリクエスト要素。path、query、header、cookie、または body です。 |
error_class |
String |
類似の違反をまとめるための、安定した大分類です。 |
error_detail |
String |
エラークラス内の任意の具体的な理由です。 |
target |
String |
違反に関連する任意のパラメーター、ヘッダー、Cookie、または $ プレフィックス付き JSON ボディパスです。 |
これらの値は、サンプリングされたログに文脈を与えます。Schema Validation は、各リクエストで最初に検出した失敗を報告します。
error_class フィールドは次の値を取ります。
| 値 | 意味 |
|---|---|
missing_required |
必須のパラメーター、ボディ、またはヘッダーがありませんでした。 |
invalid_type |
値の OpenAPI または JSON の型が誤っていました。 |
invalid_encoding |
バイトまたはテキストが想定のエンコーディングではありませんでした。 |
invalid_syntax |
不正な JSON など、リクエスト構文が無効でした。 |
invalid_media_type |
メディアタイプがスキーマと一致しませんでした。 |
unsupported_media_type |
メディアタイプまたはメディアタイプパラメーターが未対応です。 |
duplicate_value |
1 件だけ受け付ける値が複数回現れました。 |
too_many_values |
コレクションの値数がバリデーターの上限を超えました。 |
constraint_violation |
値が OpenAPI または JSON Schema の制約に違反しました。 |
body_size |
サイズまたは切り詰めのため、リクエストボディを検証できませんでした。 |
error_detail フィールドは、エラークラスだけでは足りないときに文脈を追加します。クラス、location、target で失敗を特定できる場合、フィールドは空です。
エラー詳細の値
| 詳細ファミリー | 取りうる値 |
|---|---|
| 期待する型 | expected:array、expected:boolean、expected:integer、expected:null、expected:number、expected:object、expected:string、expected:one_of |
| エンコーディングと構文 | invalid_utf8、invalid_ascii、invalid_json、invalid_form_urlencoded |
| メディアタイプ | invalid_content_type、invalid_media_type、unsupported_media_type_parameter |
| スキーマ制約 | invalid_length、invalid_object_property_count、invalid_array_item_count、not、all_of、any_of、one_of、invalid_enum_variant、forbidden_value、missing_required_property、number_too_small、number_too_big、number_not_in_range、string_length_not_in_range、different_const_value、multiple_of、pattern_no_match、value_too_deep |
| フォーマット制約 | format_violation:<format>。<format> は OpenAPI のフォーマットを示します。現在のフォーマットには uuid、email、date-time、date、time、hostname、ipv4、ipv6、uri、uri-reference、iri、iri-reference、int32、int64、uint64、byte、float、double があります。 |
target の値は違反の location に依存します。
| Location | Target |
|---|---|
path、query、または cookie |
パラメーター名 |
header |
ヘッダー名(content-type など) |
body |
$ プレフィックス付き JSON パス($.items[0].quantity など) |
ターゲットは、リクエストボディ全体に適用される失敗では空です。Cloudflare が安全にターゲットを報告できない場合も空になります。
API Security を利用中のお客様は、Schema Learning と Schema Validation 経由で Schema Profiles をすでに利用できます。Cloudflare は、API Security を持たない招待制の Enterprise お客様向けにクローズドベータを開いています。関心があるお客様はアカウントチームへ連絡してください。クローズドベータへのアクセスは、将来のプラン提供や料金を意味しません。
Cloudflare は、対応するプロファイルが利用可能になったあとでリクエストを評価します。プロファイルはリクエストのオペレーションに適用されている必要があります。
適用対象のプロファイルがないリクエストは Not evaluated 状態です。
リクエストの状態と調査手順は プロファイル検出を分析する を参照してください。