説明
負の値を許可しない数量など、下限が必要な数値フィールドに minimum または同等の制約がないと、許容範囲を下回る値もスキーマの検証を通る可能性があります。
想定される影響
サーバーも下限を検証しない場合、無効な値によって計算や業務処理のエラーが生じる可能性があります。
対処方法
フィールドの用途に合う minimum を定義し、サーバーの検証と一致させてください。負の値が有効なフィールドまで一律に0以上に制限しないでください。
例
次のOpenAPI 3.0の抜粋では、minimum: 0 によって code に負の値を許可しないことを明示しています。
変更前
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
}
}
}
}
}
}
変更後
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"minimum": 0
}
}
}
}
}
}