Projekt

Obecné

Profil

Stáhnout (2.51 KB) Statistiky
| Větev: | Revize:
1
{
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
  "$id": "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-secure.json#",
4
  "title": "Meta-schema for the security assessment of JSON Schemas",
5
  "description": "If a JSON Schema fails validation against this meta-schema, it may be unsafe to validate untrusted data",
6
  "definitions": {
7
    "schemaArray": {
8
      "type": "array",
9
      "minItems": 1,
10
      "items": {"$ref": "#"}
11
    }
12
  },
13
  "dependencies": {
14
    "patternProperties": {
15
      "description": "prevent slow validation of large property names",
16
      "required": ["propertyNames"],
17
      "properties": {
18
        "propertyNames": {
19
          "required": ["maxLength"]
20
        }
21
      }
22
    },
23
    "uniqueItems": {
24
      "description": "prevent slow validation of large non-scalar arrays",
25
      "if": {
26
        "properties": {
27
          "uniqueItems": {"const": true},
28
          "items": {
29
            "properties": {
30
              "type": {
31
                "anyOf": [
32
                  {
33
                    "enum": ["object", "array"]
34
                  },
35
                  {
36
                    "type": "array",
37
                    "contains": {"enum": ["object", "array"]}
38
                  }
39
                ]
40
              }
41
            }
42
          }
43
        }
44
      },
45
      "then": {
46
        "required": ["maxItems"]
47
      }
48
    },
49
    "pattern": {
50
      "description": "prevent slow pattern matching of large strings",
51
      "required": ["maxLength"]
52
    },
53
    "format": {
54
      "description": "prevent slow format validation of large strings",
55
      "required": ["maxLength"]
56
    }
57
  },
58
  "properties": {
59
    "additionalItems": {"$ref": "#"},
60
    "additionalProperties": {"$ref": "#"},
61
    "dependencies": {
62
      "additionalProperties": {
63
        "anyOf": [
64
          {"type": "array"},
65
          {"$ref": "#"}
66
        ]
67
      }
68
    },
69
    "items": {
70
      "anyOf": [
71
        {"$ref": "#"},
72
        {"$ref": "#/definitions/schemaArray"}
73
      ]
74
    },
75
    "definitions": {
76
      "additionalProperties": {"$ref": "#"}
77
    },
78
    "patternProperties": {
79
      "additionalProperties": {"$ref": "#"}
80
    },
81
    "properties": {
82
      "additionalProperties": {"$ref": "#"}
83
    },
84
    "if": {"$ref": "#"},
85
    "then": {"$ref": "#"},
86
    "else": {"$ref": "#"},
87
    "allOf": {"$ref": "#/definitions/schemaArray"},
88
    "anyOf": {"$ref": "#/definitions/schemaArray"},
89
    "oneOf": {"$ref": "#/definitions/schemaArray"},
90
    "not": {"$ref": "#"},
91
    "contains": {"$ref": "#"},
92
    "propertyNames": {"$ref": "#"}
93
  }
94
}
(5-5/5)