开发日志 #03 · 当自动整理遇到安全问题

文件安全防护与循环检测机制示意图

写在前面

上周我们在开发日志里聊了 FinalPlace 的整体进展,这周想单独聊一件「看不见但至关重要」的事——安全。

作为一个会自动移动、重命名、甚至删除你文件的工具,如果它不够安全,那它的便利就是一把没握好的刀。

所以这周,我们把大量精力投入到了安全防护上。

🛡️ 三道安全防线

第一道:命令注入防护

如果你的文件名里藏着类似 ; rm -rf / 的恶意内容,一个不够严谨的文件管理工具可能会在处理文件时把它当成命令执行。

听起来很极端?但作为一款本地运行的工具,我们必须假设最坏的情况。

这周我们全面审计了文件名处理链路,确保所有文件名都经过严格的转义和校验,彻底杜绝命令注入风险

第二道:Zip 炸弹检测

一个 42KB 的压缩包,解压后可能是 4.5PB 的数据。

这不是玩笑,这是真实存在的攻击方式,叫做「Zip 炸弹」。如果自动整理工具不假思索地解压它,你的硬盘会瞬间被填满。

FinalPlace 现在内置了 Zip 炸弹检测机制,在处理压缩文件之前会先检查其压缩比,一旦发现异常,直接拒绝操作

第三道:路径穿越防护

../../../etc/passwd 这样的路径,看起来只是普通的文件路径,但如果程序不做好校验,攻击者可以通过它访问到系统中的任意位置。

我们强化了路径安全检查,确保所有文件操作都被限制在用户授权的范围内,不会因为一个路径字符串就泄露系统数据

🔄 整理规则防死循环

除了恶意攻击,还有一类问题我们也很重视:用户自己造成的意外

比如你设了两个规则:规则 A 把所有 PDF 移到「文档」文件夹,规则 B 又把「文档」文件夹里的文件移到桌面。如果这两个规则同时生效,文件就会在两个文件夹之间无限跳转。

我们加入了循环检测机制——规则引擎在执行前会分析规则链,一旦检测到潜在的死循环,就会提前警告并阻止执行。

⚙️ 更精准的文件处理

最后分享一个小改进,但对你日常使用影响很大。

Windows 上有一种文件叫「只读文件」,普通的方式判断它其实不够准确。这周我们把只读检测换成了Win32 原生 API,同时新增了强制解除只读的能力。

这意味着当你让 FinalPlace 去整理一个标记为只读的文件时,它能更精准地识别和处理,不会因为判断失误而中断整个整理流程。

📌 总结

改进项 用户价值
命令注入防护 恶意文件名不会威胁系统安全
Zip 炸弹检测 压缩包不会撑爆你的硬盘
路径穿越防护 文件操作不会越界到系统目录
循环检测机制 规则不会互相打架导致死循环
Win32 原生集成 只读文件也能被准确处理

安全不是一次性的工作,而是一个持续迭代的过程。我们会持续加固 FinalPlace 的安全防线,让你用得更安心。

如果你对这些改进有任何想法,或者想提出其他安全方面的建议,欢迎通过 service@yynote.cn 联系我们。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注