Repository navigation
Expand file tree
/
Copy pathcontext7.json
More file actions
39 lines (39 loc) · 2 KB
/
Copy pathcontext7.json
File metadata and controls
39 lines (39 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"$schema": "https://context7.com/schema/context7.json",
"url": "https://context7.com/garootman/drheaderplus",
"public_key": "pk_vtYwJLWL0kDCuGUKRPhTf",
"projectTitle": "DrHeaderPlus",
"description": "Python CLI and library for auditing HTTP security headers against configurable YAML rulesets. OWASP ASVS V14 preset, CSP nonce/hash intelligence, CORS misconfiguration detection, cookie validation.",
"excludeFolders": [
"docs",
"tests",
"dist",
"assets",
".github",
".claude",
".vscode"
],
"excludeFiles": [
"CONTRIBUTING.md",
"SECURITY.md",
"HISTORY.md",
"Dockerfile",
"Makefile"
],
"rules": [
"Header names are case-insensitive (uses CaseInsensitiveDict internally)",
"Use Drheader(url=...) to scan a remote endpoint, Drheader(headers={...}) for pre-captured headers",
"Default HTTP method is HEAD; pass method='POST' to change",
"Cross-origin isolation checks (COEP/COOP) require explicit cross_origin_isolated=True flag",
"CORS origin reflection probe only runs in scan mode (URL), not compare mode (local headers)",
"analyze() returns list[Finding]; use finding.to_dict() for JSON-serializable output",
"Custom rules: load_rules(rules_file=f) or load_rules(rules_uri=url, merge_default=True)",
"Preset rules: preset_rules('owasp-asvs-v14') -- cannot combine with custom rules files",
"Finding is a dataclass (rule, message, severity, value, expected, avoid, anomalies, delimiter) — NOT a dict",
"Empty findings list means all headers passed validation; non-empty means violations found",
"CLI exit code is non-zero when findings exist — use this to fail CI/CD pipelines",
"Three rule loaders: default_rules() for built-in, preset_rules(name) for compliance presets, load_rules(file/uri) for custom YAML",
"All kwargs after url= are forwarded to requests.request() — timeout, verify, headers, params, etc.",
"Import path: from drheader import Drheader; from drheader.utils import load_rules, preset_rules"
]
}