diff --git a/public/rules/headers/header-patterns.json b/public/rules/headers/header-patterns.json
index e0ba600..8c75ad3 100644
--- a/public/rules/headers/header-patterns.json
+++ b/public/rules/headers/header-patterns.json
@@ -138,6 +138,84 @@
}
]
},
+ {
+ "defaults": {
+ "category": "数据基础设施",
+ "confidence": "高"
+ },
+ "rules": [
+ {
+ "name": "Elasticsearch Kibana",
+ "patterns": [
+ "(?:^|\\n)kbn-name:",
+ "(?:^|\\n)kbn-version:",
+ "(?:^|\\n)x-app-name:\\s*kibana"
+ ],
+ "evidence": "响应头包含 Kibana 专属标识"
+ },
+ {
+ "name": "Grafana",
+ "patterns": [
+ "(?:^|\\n)set-cookie:[^\\n]*(?:^|[;,\\s])grafana_sess(?:=|[,;\\s]|$)"
+ ],
+ "evidence": "Set-Cookie 包含 Grafana 会话标识"
+ }
+ ]
+ },
+ {
+ "defaults": {
+ "category": "DevOps / 研发效能",
+ "confidence": "高"
+ },
+ "rules": [
+ {
+ "name": "Jenkins",
+ "patterns": [
+ "(?:^|\\n)x-hudson:",
+ "(?:^|\\n)x-hudson-cli-port:"
+ ],
+ "evidence": "响应头包含 Hudson / Jenkins 专属标识"
+ },
+ {
+ "name": "SonarQube",
+ "patterns": [
+ "(?:^|\\n)set-cookie:[^\\n]*(?:^|[;,\\s])_sonar_session(?:=|[,;\\s]|$)"
+ ],
+ "evidence": "Set-Cookie 包含 SonarQube 会话标识"
+ }
+ ]
+ },
+ {
+ "defaults": {
+ "category": "后端 / 服务器框架"
+ },
+ "rules": [
+ {
+ "name": "Sinatra",
+ "confidence": "中",
+ "patterns": [
+ "(?:^|\\n)x-cascade:\\s*pass",
+ "__sinatra__"
+ ],
+ "evidence": "响应头或资源路径包含 Sinatra 框架线索"
+ },
+ {
+ "name": "Perl Mojolicious",
+ "confidence": "中",
+ "patterns": [
+ "(?:^|\\n)x-powered-by:[^\\n]*mojolicious"
+ ],
+ "evidence": "X-Powered-By 包含 Mojolicious 框架标识"
+ }
+ ]
+ },
+ {
+ "category": "CMS / 电商平台",
+ "name": "Liferay Portal",
+ "confidence": "高",
+ "patterns": ["(?:^|\\n)liferay-portal:"],
+ "evidence": "响应头包含 Liferay Portal 专属标识"
+ },
{
"category": "CMS / 电商平台",
"name": "Drupal",
@@ -248,7 +326,7 @@
},
{
"name": "Vercel",
- "patterns": ["(?:^|\\n)x-vercel-id:", "(?:^|\\n)x-matched-path:", "server:.*vercel"],
+ "patterns": ["(?:^|\\n)x-vercel-id:", "server:.*vercel"],
"evidence": "存在 Vercel 响应头"
},
{
diff --git a/public/rules/headers/interesting-headers.json b/public/rules/headers/interesting-headers.json
index d14148c..9e9d31b 100644
--- a/public/rules/headers/interesting-headers.json
+++ b/public/rules/headers/interesting-headers.json
@@ -69,7 +69,14 @@
"x-iinfo",
"x-px",
"x-hwcdn-cache",
- "x-hwcdn-request-id"
+ "x-hwcdn-request-id",
+ "kbn-name",
+ "kbn-version",
+ "liferay-portal",
+ "x-hudson",
+ "x-hudson-cli-port",
+ "x-app-name",
+ "x-cascade"
]
}
}
diff --git a/public/rules/headers/powered-by-products.json b/public/rules/headers/powered-by-products.json
index 10d64fc..f7f515b 100644
--- a/public/rules/headers/powered-by-products.json
+++ b/public/rules/headers/powered-by-products.json
@@ -317,6 +317,30 @@
"name": "Rust",
"confidence": "中",
"patterns": ["\\brust\\b|rustlang"]
+ },
+ {
+ "name": "Sinopia",
+ "patterns": ["\\bsinopia\\b"]
+ },
+ {
+ "name": "NodeBB",
+ "patterns": ["\\bnodebb\\b"]
+ },
+ {
+ "name": "RESTHeart",
+ "patterns": ["\\brestheart\\b"]
+ },
+ {
+ "name": "Payara Server",
+ "patterns": ["\\bpayara\\b"]
+ },
+ {
+ "name": "Servlet",
+ "patterns": ["\\bservlet\\b"]
+ },
+ {
+ "name": "JSP",
+ "patterns": ["\\bjsp\\b"]
}
]
}
diff --git a/public/rules/headers/server-products.json b/public/rules/headers/server-products.json
index 8ec6776..0449ca4 100644
--- a/public/rules/headers/server-products.json
+++ b/public/rules/headers/server-products.json
@@ -161,6 +161,42 @@
{
"name": "OpenSwoole",
"patterns": ["openswoole|open\\s*swoole"]
+ },
+ {
+ "name": "WEBrick",
+ "patterns": ["\\bwebrick\\b"]
+ },
+ {
+ "name": "Python http.server",
+ "patterns": ["basehttp|python.*http\\.server"]
+ },
+ {
+ "name": "GoAhead WebServer",
+ "patterns": ["goahead[-\\s]?webs?"]
+ },
+ {
+ "name": "lighttpd",
+ "patterns": ["\\blighttpd\\b"]
+ },
+ {
+ "name": "Payara Server",
+ "patterns": ["\\bpayara\\b"]
+ },
+ {
+ "name": "IBM HTTP Server",
+ "patterns": ["ibm[_-]http[_-]server|\\bihs\\b"]
+ },
+ {
+ "name": "Sinopia",
+ "patterns": ["\\bsinopia\\b"]
+ },
+ {
+ "name": "NodeBB",
+ "patterns": ["\\bnodebb\\b"]
+ },
+ {
+ "name": "RESTHeart",
+ "patterns": ["\\brestheart\\b"]
}
]
},
diff --git a/public/rules/page/frontend-extra.json b/public/rules/page/frontend-extra.json
index 8b21707..516ea4c 100644
--- a/public/rules/page/frontend-extra.json
+++ b/public/rules/page/frontend-extra.json
@@ -463,7 +463,7 @@
"patterns": [
"(?:^|/)react-router(?:-dom)?(?:@[\\d.]+)?(?:/[^\\s\"'<>]+)?\\.(?:m?js|cjs)(?:[?#\"'<>\\s]|$)"
],
- "globals": ["ReactRouter", "ReactRouterDOM"]
+ "globals": ["ReactRouter", "ReactRouterDOM", "__reactRouterVersion"]
},
{
"name": "Anime.js",
diff --git a/public/rules/page/frontend-frameworks.json b/public/rules/page/frontend-frameworks.json
index dbb3531..cd6cc37 100644
--- a/public/rules/page/frontend-frameworks.json
+++ b/public/rules/page/frontend-frameworks.json
@@ -18,7 +18,7 @@
{
"name": "Vue",
"patterns": ["vue(?:\\.runtime)?(?:\\.global)?(?:\\.prod)?(?:\\.min)?\\.js", "vue-router", "pinia"],
- "globals": ["Vue"],
+ "globals": ["Vue", "__VUE_DEVTOOLS_GLOBAL_HOOK__"],
"selectors": ["[data-v-app]", "#app.__vue__"]
},
{
diff --git a/public/rules/page/website-programs.json b/public/rules/page/website-programs.json
index 6721bdb..5c97b80 100644
--- a/public/rules/page/website-programs.json
+++ b/public/rules/page/website-programs.json
@@ -155,11 +155,26 @@
"kind": "论坛 / 社区",
"patterns": [
"]+name=[\"']?generator[\"']?[^>]+content=[\"'][^\"']*discourse",
+ "]+name=[\"']?discourse-version[\"']?",
"__DISCOURSE",
"/assets/discourse-",
"discourse_theme"
],
- "globals": ["Discourse"]
+ "globals": ["Discourse", "Discourse.SiteSettings", "Discourse.User"],
+ "selectors": [".discourse-application", "#discourse-modal"]
+ },
+ {
+ "name": "OpenList",
+ "kind": "文件列表",
+ "patterns": [
+ "]+name=[\"']?generator[\"']?[^>]+content=[\"'][^\"']*OpenList"
+ ],
+ "globals": ["OPENLIST_CONFIG"]
+ },
+ {
+ "name": "Cloudreve",
+ "kind": "网盘",
+ "patterns": ["cloudreve-frontend"]
},
{
"name": "MediaWiki",
@@ -290,7 +305,7 @@
},
{
"name": "VuePress",
- "patterns": ["vuepress", "__VUEPRESS__"]
+ "patterns": ["]+name=[\"']?generator[\"']?[^>]+content=[\"'][^\"']*VuePress", "vuepress", "__VUEPRESS__"]
},
{
"name": "Docsify",