What it does
DSH 手机/外网远程访问插件:Cloudflare Quick Tunnel 公网隧道 + token 鉴权 + gzip 压缩 + 局域网 HTTPS 直连 + 手机图标面板 + QQ 机器人取链接
Installation
dsh plugin --profile web add dsh-web-remoteInstall method: npm · not yet tested in container (L3+)
Compatibility
| DSH Version | Status |
|---|---|
| not stated | Declared — not tested |
Requirements
- • Node.js: not stated
- • DSH: declared "not stated"
- • External credentials: none detected
Security Report
Automated static scan, not manual review.
No critical findings, but warning-level issues were detected (file writes, remote imports, base64 decoding, downloads).
55673944742f2026-08-1655673944742fThe scan result is only valid for the scanned commit. If the latest commit differs, the badge shows outdated until the daily pipeline rescans.
Disclaimer: automated static analysis, not a security guarantee. Always review what you install.
• Static heuristic scan: done (3 files)
• Dependency vulnerabilities: requires deep audit (L3+)
• Permission sandboxing: requires runtime testing (L4+)
Scan findings · 12
- warningHTTP request to a raw IP addresslib/index.mjs:1060const tunnelArgs = [cloudflaredPath, 'tunnel', '--url', 'http://127.0.0.1:' + httpPort, '--no-autoupdate', '--ha-connections', '4'];
- warningHTTP request to a raw IP addresslib/index.mjs:1077qqServer = createQQServer({ infoUrls: ['http://127.0.0.1:' + config.targetPort + '/remote/info', 'http://127.0.0.1:' + config.targetPort + '
- warningFilesystem write operationslib/index.mjs:517try { fs.chmodSync(tmp, 0o755); } catch (e) { /* ignore */ }
- warningFilesystem write operationslib/index.mjs:525const file = fs.createWriteStream(dest);
- infoReads process.envlib/index.mjs:979toolsDir = process.env.DSH_HOME ? path.join(process.env.DSH_HOME, 'tools') : path.join(os.homedir(), '.dsh', 'tools');
- infoUses localStoragelib/index.mjs:564try { localStorage.setItem('webrm-tab', currentTab); } catch (e) {}
- infoUses localStoragelib/index.mjs:568try { if (localStorage.getItem('webrm-tab') === 'lan') t = 'lan'; } catch (e) {}
- infoMakes network requests (fetch / axios)lib/index.mjs:715return fetch('/remote/info?_=' + Date.now(), { cache: 'no-store' }).then(function (res) { return res.json(); });
- infoMakes network requests (fetch / axios)lib/index.mjs:718return fetch('/remote/control', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ action: action })
- infoHardcoded IP addresslib/index.mjs:84const attr = derSeq(derOid('2.5.4.3'), derUtf8String(cn));
- infoHardcoded IP addresslib/index.mjs:102return derSeq(derOid('2.5.29.17'), derOctetString(seq));
- infoHardcoded IP addresslib/index.mjs:107return derSeq(derOid('2.5.29.19'), derOctetString(seq));
Heuristic static scan — may produce false positives. Review the source yourself before trusting.
Activity
Last commit 2026-08-16 · activity: Active
• Repo created: 2026-08-16
• Stars: ★ 3 · Forks: 0
• Health: Active — committed within last 30 days
