{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"2672243194-dsh-read-url","slug":"2672243194-dsh-read-url","rank":234,"url":"https://github.com/2672243194/dsh-read-url","name":"2672243194/dsh-read-url","category":"browser","description":{"zh":"读取网页返回干净正文：中文编码自动识别（GBK/GB2312/UTF-8/Big5）、噪音过滤、紧凑文本/Markdown、offset 续读、可选 SPA 渲染、批量读取与整站爬取。","en":"Read any page as clean main content: charset auto-detect (GBK/GB2312/UTF-8/Big5), noise stripping, compact text/Markdown, offset continuation, optional SPA rendering, batch reads and site crawling."},"stars":13,"starsCheckedAt":"2026-08-21","repository":{"owner":"2672243194","repo":"dsh-read-url","requestedRef":null,"subpath":""},"npm":"dsh-read-url","downloads":254,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-read-url","tarball":null,"added":"2026-08-17","page":"https://awesome-dsh-plugin.com/p/2672243194/dsh-read-url/","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":"2672243194-dsh-read-url","slug":"2672243194-dsh-read-url","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:22:35.722Z","scanStatus":"static-complete","verdict":"caution","score":94,"commit":"a3e40b2f9ebc5d68a2f46288feee839cb9223565","commitDate":"2026-08-21T15:35:32+08:00","artifactDigest":"sha256:b61b8bdffa281474f3455632faec07f16ce58630f0247d64b80b40ace513ab13","downloadUrl":"https://github.com/2672243194/dsh-read-url/archive/a3e40b2f9ebc5d68a2f46288feee839cb9223565.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-read-url","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-read-url","packageVersion":"1.0.0","bundle":{"patch":"cordis.patch.yml"},"client":null,"lifecycleScripts":{},"peerDependencies":[]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-read-url","manifestName":"dsh-read-url","nameMatch":true,"npm":{"name":"dsh-read-url","latestVersion":"1.0.0","publishedAt":"2026-08-21T07:39:25.188Z","createdAt":"2026-08-19T14:31:25.643Z","versionCount":4,"maintainers":1,"repository":"git+https://github.com/2672243194/dsh-read-url.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"dsh-read-url","name":"dsh-read-url","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":null,"parseErrors":[]},"capabilities":["browser-ui","environment","host-bundle","network","subprocess"],"outboundHosts":[{"host":"httpbin.org","count":9},{"host":"x.com","count":6},{"host":"www.ruanyifeng.com","count":4},{"host":"www.bilibili.com","count":2},{"host":"news.sina.com.cn","count":2},{"host":"www.douban.com","count":2},{"host":"zh.wikipedia.org","count":2},{"host":"sspai.com","count":2},{"host":"www.v2ex.com","count":2},{"host":"www.qidian.com","count":2},{"host":"spa.example.com","count":2},{"host":"www.xiaoheihe.cn","count":1},{"host":"juejin.cn","count":1},{"host":"www.zhihu.com","count":1},{"host":"weibo.com","count":1},{"host":"www.csdn.net","count":1},{"host":"www.cnblogs.com","count":1},{"host":"news.qq.com","count":1},{"host":"news.163.com","count":1},{"host":"www.baidu.com","count":1},{"host":"www.sohu.com","count":1},{"host":"www.ifeng.com","count":1},{"host":"www.bbc.com","count":1},{"host":"en.wikipedia.org","count":1},{"host":"mozilla.github.io","count":1},{"host":"nonexistent-domain-xyz123.com","count":1},{"host":"zhuanlan.zhihu.com","count":1},{"host":"baike.baidu.com","count":1},{"host":"www.hupu.com","count":1},{"host":"36kr.com","count":1},{"host":"www.gov.cn","count":1},{"host":"www.bupt.edu.cn","count":1},{"host":"zhidao.baidu.com","count":1},{"host":"tieba.baidu.com","count":1},{"host":"www.zol.com.cn","count":1},{"host":"cn.vuejs.org","count":1},{"host":"api.github.com","count":1},{"host":"github.blog","count":1},{"host":"www.oschina.net","count":1},{"host":"www.ptt.cc","count":1}],"findings":[{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"index.js","pathClass":"source","line":670,"evidence":"document.write(","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"7de8ac19172f76e0d8d0f2e7"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"proxy-fallback.js","pathClass":"source","line":16,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a772024a50d94a97e0e424db"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"proxy-fallback.js","pathClass":"source","line":16,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"7aa011b75f4587b54dba9168"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"test-spa.mjs","pathClass":"source","line":43,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"dafd90fd17955a1973e0940d"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"test-spa.mjs","pathClass":"source","line":54,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"dafd90fd17955a1973e0940d"}],"counts":{"critical":0,"high":0,"medium":3,"low":2},"rawCounts":{"critical":0,"high":0,"medium":3,"low":2},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-missing","vulnerabilities":"lockfile-missing","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":12,"bytesScanned":222343,"truncated":false,"lockfiles":[],"pathClasses":{"markdown":4,"cordis":1,"source":6,"manifest":1}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:22:35.722Z","commit":"a3e40b2f9ebc5d68a2f46288feee839cb9223565","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:22:15.636Z","commit":"a3e40b2f9ebc5d68a2f46288feee839cb9223565","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:50:42.147Z","commit":"a3e40b2f9ebc5d68a2f46288feee839cb9223565","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"a3e40b2f9ebc5d68a2f46288feee839cb9223565","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:22:35.722Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"a3e40b2f9ebc5d68a2f46288feee839cb9223565","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:22:15.636Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"a3e40b2f9ebc5d68a2f46288feee839cb9223565","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:50:42.147Z"}]}