{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"anweat-dsh-web-search-pro","slug":"anweat-dsh-web-search-pro","rank":140,"url":"https://github.com/anweat/dsh-web-search-pro","name":"anweat/dsh-web-search-pro","category":"browser","description":{"zh":"增强型、可持久化的网页搜索：多引擎路由（DeepSeek/Exa/DDG/Bing/Jina + GitHub/B站/YouTube/V2EX/小红书/Twitter/Reddit/RSS）、SQLite+LRU 缓存、userscript 风格抽取、Playwright 渲染。","en":"Persistent enhanced web search: multi-engine routing (DeepSeek/Exa/DDG/Bing/Jina + GitHub/Bilibili/YouTube/V2EX/Xiaohongshu/Twitter/Reddit/RSS), SQLite+LRU cache, userscript-style extraction, Playwright rendering."},"stars":29,"starsCheckedAt":"2026-08-21","repository":{"owner":"anweat","repo":"dsh-web-search-pro","requestedRef":null,"subpath":""},"npm":"dsh-web-search-pro","downloads":1622,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-web-search-pro","tarball":null,"added":"2026-08-14","page":"https://awesome-dsh-plugin.com/p/anweat/dsh-web-search-pro/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"anweat-dsh-web-search-pro","slug":"anweat-dsh-web-search-pro","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:21:22.738Z","scanStatus":"static-complete","verdict":"pass","score":99,"commit":"be8407cd7ae299ad5ac1ff066d8d004ac9274fd8","commitDate":"2026-08-22T11:36:05+08:00","artifactDigest":"sha256:8ad83085fe9b4c40e54f63174b1783694a0f5ca70bd2cabba7d908f85d41ff03","downloadUrl":"https://github.com/anweat/dsh-web-search-pro/archive/be8407cd7ae299ad5ac1ff066d8d004ac9274fd8.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-web-search-pro","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-web-search-pro","packageVersion":"0.1.3","bundle":{"patch":"./cordis.patch.yml"},"client":null,"lifecycleScripts":{"prepare":"npm run build"},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-credentials","@deepseek-ai/dsh-settings","@deepseek-ai/dsh-tools","@deepseek-ai/schemastery"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-web-search-pro","manifestName":"dsh-web-search-pro","nameMatch":true,"npm":{"name":"dsh-web-search-pro","latestVersion":"0.1.2","publishedAt":"2026-08-14T08:06:23.640Z","createdAt":"2026-08-14T02:29:59.892Z","versionCount":3,"maintainers":1,"repository":"git+https://github.com/anweat/dsh-web-search-pro.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"attested","tarballHost":null,"versionMatch":"differs"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"web-search-pro","name":"dsh-web-search-pro","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":null,"parseErrors":[]},"capabilities":["agent-control","browser-ui","credentials","environment","filesystem","host-bundle","network","subprocess"],"outboundHosts":[{"host":"eutils.ncbi.nlm.nih.gov","count":4},{"host":"pubmed.ncbi.nlm.nih.gov","count":4},{"host":"www.zhihu.com","count":3},{"host":"tieba.baidu.com","count":3},{"host":"www.douyin.com","count":3},{"host":"www.kuaishou.com","count":3},{"host":"api.exa.ai","count":2},{"host":"html.duckduckgo.com","count":2},{"host":"www.bing.com","count":2},{"host":"s.jina.ai","count":2},{"host":"api.github.com","count":2},{"host":"www.bilibili.com","count":2},{"host":"www.sov2ex.com","count":2},{"host":"www.v2ex.com","count":2},{"host":"www.youtube.com","count":2},{"host":"export.arxiv.org","count":2},{"host":"r.jina.ai","count":2},{"host":"s.weibo.com","count":2},{"host":"www.douban.com","count":2},{"host":"weibo.com","count":1},{"host":"accounts.douban.com","count":1},{"host":"www.xiaohongshu.com","count":1}],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/util.js","pathClass":"source","line":8,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"9ee8257c600f5a30150b827c"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/util.js","pathClass":"source","line":8,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"05c237f6a0482ff66aafe49c"},{"id":"HT-INSTALL-002","title":"Git 安装会触发 prepare 构建脚本","severity":"medium","confidence":"low","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":31,"evidence":"\"prepare\": \"npm run build\"","remediation":"发布预构建制品（npm 或 GitHub Release tarball），并记录源码与发布包的一致性证明。","note":"该插件以 npm/tarball 预构建方式分发，prepare 不在用户机器上执行","hash":"d28b218339321374f2793b3b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/save-login.mjs","pathClass":"source","line":16,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"c15049a609cf1c9054a3dc16"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/save-login.mjs","pathClass":"source","line":16,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"afcbf2f5a55067cb7140cbee"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/util.ts","pathClass":"source","line":9,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"f9d77ac12d64e262af200bdf"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/util.ts","pathClass":"source","line":9,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"8cc89dd5a3ade914115ff356"}],"counts":{"critical":0,"high":0,"medium":0,"low":6},"rawCounts":{"critical":0,"high":0,"medium":1,"low":6},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":53,"bytesScanned":379318,"truncated":false,"lockfiles":["pnpm-lock.yaml"],"pathClasses":{"test-example-docs":1,"markdown":5,"cordis":1,"source":42,"manifest":1,"yaml":2,"data":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:21:22.738Z","commit":"be8407cd7ae299ad5ac1ff066d8d004ac9274fd8","policyVersion":"HT-DSH-0.2.2","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T11:20:31.567Z","commit":"f8f388c75d11a5fbee673a4ab010c166098a989b","policyVersion":"HT-DSH-0.2.1","verdict":"pass","status":"static-complete"},{"scannedAt":"2026-08-21T10:48:26.466Z","commit":"f8f388c75d11a5fbee673a4ab010c166098a989b","policyVersion":"HT-DSH-0.2.0","verdict":"pass","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"be8407cd7ae299ad5ac1ff066d8d004ac9274fd8","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:21:22.738Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"f8f388c75d11a5fbee673a4ab010c166098a989b","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:20:31.567Z"},{"kind":"first-scan","from":null,"to":"pass","commit":"f8f388c75d11a5fbee673a4ab010c166098a989b","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:48:26.466Z"}]}