{"adoption": {"forks": 1176, "observed_at": "2026-08-28T04:10:01.835880+00:00", "stars": 7592}, "canonical_url": "https://ross.abutalabs.com/products/awesome-waf", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Everything about Web Application Firewalls (WAFs) from Security Standpoint! 🔥", "domain": ["security", "penetration-testing", "web-development", "awesome-lists"], "enriched": true, "function": ["security", "penetration-testing", "vulnerability-scanning", "developer-tools"], "health_score": 80, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["0xInfection/Awesome-WAF"], "name": "0xInfection/Awesome-WAF", "platform": ["cross-platform"], "pushed_at": "2026-08-26T12:48:34+00:00", "repo": "0xInfection/Awesome-WAF", "stars": 7592, "tags": ["awesome-list", "waf", "web-application-firewall", "waf-bypass", "waf-detection", "evasion-techniques", "infosec", "curated-resources"], "topics": ["waf", "web-application-firewall", "firewall", "awesome-list", "awesome", "waf-bypass", "waf-detection", "waf-test", "waf-testing", "waf-fingerprints", "bypass-waf", "infosec", "security"], "urls": [], "use_cases": ["learn how web application firewalls work", "find tools to detect and fingerprint WAFs", "research WAF bypass and evasion techniques", "prepare for pentesting a web app behind a WAF", "find papers and talks on WAF security", "build a WAF testing methodology"], "what_it_is": "A curated awesome-list collecting everything about Web Application Firewalls (WAFs) from a security perspective, including how they work, detection and fingerprinting techniques, evasion methods, known bypasses, and related tools, papers, and writeups. It is aimed at penetration testers and security researchers rather than being a runnable tool itself.", "when_to_avoid": ["you need an actual WAF product to deploy and protect an application", "you want runnable software rather than a curated list of resources", "you need guaranteed up-to-date bypasses for a specific WAF vendor"], "when_to_choose": ["you are a pentester or researcher needing a comprehensive WAF reference", "you want a curated starting point for WAF detection, fingerprinting, or bypass research", "you need links to tools, papers, and writeups about WAFs in one place"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/awesome-waf", "repo": "0xInfection/Awesome-WAF", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:01.835880+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:36:53.016545+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5b922b4e77efe0d053c56da66f1c122f44e1b2879f9becb67dd8a678e311319e", "fetched_at": "2026-08-28T04:10:01.835880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xInfection/Awesome-WAF"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2794, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}