|
|
- {
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-secure.json#",
- "title": "Meta-schema for the security assessment of JSON Schemas",
- "description": "If a JSON Schema fails validation against this meta-schema, it may be unsafe to validate untrusted data",
- "definitions": {
- "schemaArray": {
- "type": "array",
- "minItems": 1,
- "items": {"$ref": "#"}
- }
- },
- "dependencies": {
- "patternProperties": {
- "description": "prevent slow validation of large property names",
- "required": ["propertyNames"],
- "properties": {
- "propertyNames": {
- "required": ["maxLength"]
- }
- }
- },
- "uniqueItems": {
- "description": "prevent slow validation of large non-scalar arrays",
- "if": {
- "properties": {
- "uniqueItems": {"const": true},
- "items": {
- "properties": {
- "type": {
- "anyOf": [
- {
- "enum": ["object", "array"]
- },
- {
- "type": "array",
- "contains": {"enum": ["object", "array"]}
- }
- ]
- }
- }
- }
- }
- },
- "then": {
- "required": ["maxItems"]
- }
- },
- "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": "#"},
- "dependencies": {
- "additionalProperties": {
- "anyOf": [
- {"type": "array"},
- {"$ref": "#"}
- ]
- }
- },
- "items": {
- "anyOf": [
- {"$ref": "#"},
- {"$ref": "#/definitions/schemaArray"}
- ]
- },
- "definitions": {
- "additionalProperties": {"$ref": "#"}
- },
- "patternProperties": {
- "additionalProperties": {"$ref": "#"}
- },
- "properties": {
- "additionalProperties": {"$ref": "#"}
- },
- "if": {"$ref": "#"},
- "then": {"$ref": "#"},
- "else": {"$ref": "#"},
- "allOf": {"$ref": "#/definitions/schemaArray"},
- "anyOf": {"$ref": "#/definitions/schemaArray"},
- "oneOf": {"$ref": "#/definitions/schemaArray"},
- "not": {"$ref": "#"},
- "contains": {"$ref": "#"},
- "propertyNames": {"$ref": "#"}
- }
- }
|