用途:该技能聚焦不安全临时文件这一安全反模式(CWE-377,严重度中等),适用于编写或审查涉及临时文件创建、文件缓存、上传处理的代码时,识别并修正相关风险。
主要能力:总结三类攻击向量——可预测文件名导致符号链接攻击、权限不安全导致未授权访问、缺少清理导致敏感数据残留;并给出多种语言的对比示例与修复方式。检测方法包括用 rg 搜索硬编码临时路径(如 rg 'open\s*(\s*["']/(tmp|var/tmp)/')、识别基于用户 ID 或时间戳的可预测命名、审计权限设置、检查是否缺少清理逻辑。
必要用法:遵循的要点包括——使用可信库创建临时文件,如 Python 的 tempfile、Java 的 Files.createTempFile;never 用可预测名称拼接路径;确保临时文件权限受限(如 0600);始终清理临时文件,使用 try...finally 或上下文管理器保证删除;数据较小时考虑改用内存缓冲(如 io.BytesIO)。示例中 Python 用 tempfile.mkstemp() 配合 os.fdopen 与 finally 中的 os.remove;Node.js 用 tmp.fileSync 配合 removeCallback;Java 用 Files.createTempFile 并指定 rw------- 权限,finally 中 Files.deleteIfExists;Go 用 os.CreateTemp 配合 defer os.Remove。
适用场景与限制:适合安全代码审查、AI 生成代码的安全加固、文件缓存与上传处理场景。资料仅提供概念、示例与检测命令,未提供安装命令、收费信息或完整工具封装流程,相关事实暂未提供。