refactor: security meta-schema

master
Evgeny Poberezkin 2019-02-02 19:46:59 +00:00
parent a9e03c5916
commit aced0cc56e
1 changed files with 15 additions and 25 deletions

View File

@ -10,25 +10,19 @@
"items": {"$ref": "#"}
}
},
"allOf": [
{
"dependencies": {
"patternProperties": {
"description": "prevent slow validation of large property names",
"if": {
"required": ["patternProperties"]
},
"then": {
"required": ["propertyNames"],
"properties": {
"propertyNames": {
"required": ["maxLength"]
}
"required": ["propertyNames"],
"properties": {
"propertyNames": {
"required": ["maxLength"]
}
}
},
{
"uniqueItems": {
"description": "prevent slow validation of large non-scalar arrays",
"if": {
"required": ["uniqueItems"],
"properties": {
"uniqueItems": {"const": true},
"items": {
@ -52,19 +46,15 @@
"required": ["maxItems"]
}
},
{
"description": "prevent slow validation of large strings",
"if": {
"anyOf": [
{"required": ["pattern"]},
{"required": ["format"]}
]
},
"then": {
"required": ["maxLength"]
}
"pattern": {
"description": "prevent slow pattern matching of large strings",
"required": ["maxLength"]
},
"format": {
"description": "prevent slow format validation of large strings",
"required": ["maxLength"]
}
],
},
"properties": {
"additionalItems": {"$ref": "#"},
"additionalProperties": {"$ref": "#"},