mirror of
https://github.com/0xMarcio/cve.git
synced 2026-10-27 16:51:03 +00:00
Give every CVE its own page at the site root
82,000 CVEs sat behind one URL. Each of them is a query somebody types, and the pages answering those queries belonged to other people: searching "CVE-2026-72898 poc" returns SentinelOne, Horizon3, Wiz and BishopFox, all of them serving one page per CVE. Pages are flat files at /CVE-2026-72898. No /cve/ prefix, no extension, no trailing slash. GitHub Pages resolves an extensionless request to the .html beside it, checked against the live site rather than assumed. Each page carries what the index already knows and nothing invented: every CVSS assessment with its vector, EPSS with percentile, KEV date and ransomware flag, Nuclei severity and CWE, and the PoC links grouped by source with stars and last push. 94% of them carry three or more of those signals. Discovery works two ways. sitemap.xml is now an index over one shard per year, which fits the 50,000 URL cap on the split the data already has and lets a crawler refetch only the year that moved. Search results link to the CVE page instead of straight out to NVD, which moves to a chip beside CVE.ORG, and each page links six related CVEs picked by shared PoC author. Rendering all of them takes 20s and adds nothing to the repository: the payloads they read are already gitignored and built in CI, so the pages go into the Pages artifact and git never sees them.
This commit is contained in:
1 parent
3e9e0a40e0
commit
9b9957ea7f
8 files changed
+409
-11
No files matched your search
@@ -32,7 +32,10 @@ jobs:
|
||||
- name: Build site data
|
||||
run: python3 scripts/build_site.py
|
||||
|
||||
- name: Build robots.txt and sitemap.xml
|
||||
- name: Build per-CVE pages
|
||||
run: python3 scripts/build_pages.py
|
||||
|
||||
- name: Build robots.txt and sitemaps
|
||||
run: python3 scripts/build_seo.py
|
||||
|
||||
- name: Verify published counts
|
||||
|
||||
Reference in new issue
Block a user