前言¶
DeepSeek Harness (DSH) 网页版在无人值守或多人共用一台机器时,存在被直接操作的风险。dsh-lock 插件通过全屏遮罩和密码验证,在用户访问 DSH 前加了一道门禁,只有输入正确密码才能进入工作区。
功能概览¶
- 全屏遮罩:未解锁时覆盖整个界面,阻止直接操作会话。
- 手动锁定:随时通过侧边栏按钮或快捷键立即锁定。
- 自动锁定:可配置空闲时长,超时后自动锁定。
- 密码安全:仅存 scrypt 单向哈希(N=2^15, r=8, p=1),永不保存明文。
- 界面中英双语:跟随 DSH 的界面语言设置实时切换。
安装与启用¶
在终端执行以下命令安装插件:
dsh plugin --profile web add github:felixpu/dsh-lock
安装完成后需重启宿主进程。
使用方法¶
- 解锁:打开页面时显示锁定界面,输入密码即可解锁。
- 立即锁定:
- 点击侧边栏底部的「锁定」按钮。
- 使用快捷键:macOS / Windows 为
Ctrl/Cmd + Shift + L;Linux 为Ctrl/Cmd + Shift + .。
- 自动锁定时长:进入「设置 → 插件 → dsh-lock」面板配置。
安全机制¶
- 存储方式:密码以 scrypt 算法加盐哈希存储,比对使用常量时间比较,仅存哈希值,不保存明文。
- 令牌机制:解锁后签发的是短期令牌,而非保存密码本身。
- 卸载安全:存储在插件私有目录下,卸载插件不会把密码留在会话或配置里。
- 安全边界:这是界面门禁,不是磁盘加密。它防的是「别人走到你电脑前直接操作 DSH」,不能防止能读取你用户目录下文件的攻击者。
注意事项¶
- 错误代码:不产出面向用户的自然语言,路由响应只回机器可读的代码,如
invalid-password/too-many-attempts/locked。 - Locale 配置:为确保中英双语正常工作,必须在
package.json的exports里导出locale/*.json,且files字段需包含locale目录。这是两个容易漏掉的点,漏掉会导致静默失效。
总结¶
dsh-lock 是一个轻量级的界面安全插件,适合需要在公共设备上临时离开或多人协作时保护 DSH 会话安全。其代码托管在 GitHub,遵循 MIT 许可证。