Invalid Request Spec (無効なリクエスト仕様)¶
概要¶
指定された仕様に対して無効なペイロードをサーバーが受信しました。
通常、この問題は、API の実装と手動でメンテナンスされている仕様とのずれによって発生します。 たいていの場合、そのようなずれは無害です。
この問題が、意図しない "mass assignment" (一括代入) 脆弱性などの、より深刻な検証の問題の徴候である (ただし証拠ではない) 可能性があります。 mass assignment 脆弱性は、攻撃者に本来書き込み不可能であるべきフィールドへの書き込みを許します。
参考までに、Mayhem for API 自体は、API をテストするのに完全な仕様を必要としません。 主要なテストの副作用として仕様の検証が可能であるため、 ユーザーにとって役に立つ可能性を考慮してこれらの警告を生成します。 警告を修正しなくとも、Mayhem for API を使い続けることができます。
推奨事項¶
念のため、期待に反して成功したペイロードがセキュリティやその他のより深刻な欠陥 を表していないことを確認します。 確認が取れたら、実際のコードが受け入れるものに合わせてエンドポイントの "requestBody" フィールドを調整します。
サンプル¶
mass assignment 脆弱性の典型的な例は、ruby on rails のコードです。
@user = User.new(params[:user])
期待されるフィールドが仕様に挙げられているが、コードがフィールドを チェックしていない場合、 上記のコードは "Invalid Request Spec" 警告をレポートします。
openapi: "3.0.0"
info:
title: "user"
version: "0"
paths:
/user:
post:
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
name:
type: string
email:
type: string