説明
長さの制限が必要な文字列に maxLength または同等の制約がないと、スキーマ上は過度に長い値も許可される可能性があります。
想定される影響
サーバーも入力の長さを制限しない場合、大きな値によってメモリやストレージの使用量が増えたり、処理エラーが発生したりする可能性があります。
対処方法
業務要件に応じた maxLength を定義し、サーバーの上限と一致させてください。許可する値の一覧など、既存の制約ですでに長さが制限されているかも確認してください。
例
次のOpenAPI 3.0の抜粋では、code を最大15文字、message を最大255文字に制限しています。実際の上限は各フィールドの用途に合わせて決めてください。
変更前
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}
}
変更後
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "string",
"maxLength": 15
},
"message": {
"type": "string",
"maxLength": 255
}
}
}
}
}
}