説明
数量や金額など、上限が必要な数値フィールドに maximum または同等の制約がないと、業務上の許容範囲を超えた値もスキーマの検証を通る可能性があります。
想定される影響
サーバーも上限を検証しない場合、過度に大きな値によって計算エラーや処理の失敗が生じる可能性があります。
対処方法
許容範囲に合わせて maximum を定義し、サーバーでも同じ上限を検証してください。許可する値の一覧や参照先のスキーマに、すでに上限が定義されているかも確認してください。
例
次のOpenAPI 3.0の抜粋では、code の既存の最小値0に最大値50を追加しています。50は、この例で想定する業務上の上限です。
変更前
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
}
}
}
変更後
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"minimum": 0,
"maximum": 50
}
}
}
}
}
}