| 版本 | 收到安全报告 |
|---|---|
| 0.1.x | ✅ |
不要开公开 Issue。 用 GitHub 的 私密漏洞报告(Security → Report a vulnerability)。
48 小时内我会确认收到,评估后给修复时间。
它以当前用户的权限操作你的机器。默认非管理员,删 HKLM 下的键会报「权限不足」。
它不做这些事:
- 不联网。没有遥测、没有自动更新、没有崩溃上报
- 不读你的文件内容。扫描只看路径、文件名、大小、修改时间
- 不执行要删的东西
- 不改 PATH、不改注册表默认项、不动防火墙
按风险从高到低:
这是本项目最大的风险。 一个扫描器把在用项目当成垃圾,代价是丢源码。
现有防线:
- 文件删除走
SHFileOperationW+FOF_ALLOWUNDO→ 进回收站,可还原 - 需确认项不自动勾选
- 确认弹窗列出前 40 项和总条目数
- Git 仓库默认只读,要同时满足三条才进可删列表
- 删之前检查文件是否被进程占用
仍然存在的风险:你勾选了「需确认」项并确认删除,源码就进回收站了。
- 删之前必定先导出
.reg备份,导出失败就拒绝删除 - 备份在
%LOCALAPPDATA%\DevCleaner\registry_backups\ - 只碰
HKCU的 10 个 MRU 键和三个Uninstall/Run分支,刻意不遍历HKCR\CLSID—— 那里误删会让系统装不上程序
用 os.rmdir/os.unlink 只删链接本身。不递归进去 —— 断链的目标已经不存在,递归进去可能命中同名的别的东西。
扫描和清理之间有时间差。中间状态变了(程序被安装/卸载/文件被占用)可能导致删错。防线是清理前重新检查存在性和占用。
- 第一次用先别点「移入回收站」。 先展开每个分类,看清楚判据对不对
- 保留
settings.yaml的副本 - 定期清空回收站之前,确认一遍最近删了什么
- 注册表备份目录别急着删
- 重要项目自己还有 Git 备份的话,风险本来就低
发现问题请按上面报 privately。修好后我会在 CHANGELOG 里记一笔,包括误报了什么 —— 判据的教训比修复本身更有价值。