讲师中心 微信公众号
AI工具推荐 视频效率加速

Python 数据修复脚本的安全编写规范

冬静吖_4650

冬静吖_4650

发布时间:2026-02-24 20:49:06

|

710人浏览过

|

来源于php中文网

原创

必须校验路径越界并脱敏敏感日志:用Path.resolve()检查是否在允许根目录内,匹配password/token等字段时日志替换为。

python 数据修复脚本的安全编写规范

避免用 exec 或 eval 处理外部输入的数据

数据修复脚本常要解析用户传入的表达式或配置,但直接喂给 exec 或 eval 就等于把 shell 交出去。哪怕只处理 CSV 中一列“计算公式”,攻击者也能塞进 __import__('os').system('rm -rf /')。

  • 改用白名单函数 + ast.literal_eval 处理字面量(dict、list、数字、字符串),它不执行任意代码
  • 真需要动态计算,用 numexpr 或 pandas.eval,它们限制作用域、禁用内置函数
  • 如果必须用 eval,至少重置 globals 和 locals,只暴露极少数安全函数,比如:{'abs': abs, 'round': round}

读写文件前必须校验路径是否越界

修复脚本常接受 --input 和 --output 路径参数,但没做规范化就直接拼接,容易被 ../../etc/passwd 绕过。Python 的 pathlib.Path 默认不拦截上层跳转。

  • 用 pathlib.Path.resolve() 获取绝对路径后,检查是否在允许根目录内:if not str(output_path).startswith(str(allowed_root)):
  • 避免用 os.path.join 拼接用户输入——它不会清理 ../;改用 Path.cwd() / user_input 再 .resolve()
  • Linux 下注意符号链接:即使路径在白名单内,resolve() 后仍可能指向外部,必要时用 Path.samefile() 校验真实位置

敏感字段默认不打印、不落日志

修复过程中若遇到含密码、token、身份证号的字段,脚本默认输出或写入 debug 日志,等于把密钥明文存硬盘。尤其当脚本跑在共享服务器或 CI 环境时,风险极高。

python-flask-vue-creator
python-flask-vue-creator

创建 Flask + Vue.js 全栈项目,采用单端口架构、uv 依赖管理、结构化日志和生产级前端设计。当用户要求以下操作时触发:创建新的 Flask+Vue 项目、搭建 Web 应用、构建全栈 Python+Vue 应用、初始化 Flask Web 项目、设置单端口 Flask 前后端项目。触发词:新建项目、创建项目、搭建项目、Flask项目、Vue项目。

下载
  • 用正则预扫描字段值,匹配到敏感模式(如 r'(?i)password|token|idcard')就跳过 print,日志中替换为 <redacted></redacted>
  • 别依赖“只在本地跑”——加一层开关:if not args.sensitive_logging: 控制是否记录原始值
  • 用 logging.handlers.RotatingFileHandler 时设 mode='w' 防止旧日志残留敏感内容

用 tempfile 替代手动建临时文件

修复大文件时,常先写中间结果到 /tmp/fix_temp.csv,但硬编码路径有竞态和权限问题:多个实例可能覆盖彼此,或因 umask 导致临时文件可被同组用户读取。

立即学习“Python免费学习笔记(深入)”;

  • 一律用 tempfile.NamedTemporaryFile(delete=False),它自动选安全路径、设 0600 权限、避免命名冲突
  • 关闭文件句柄后再重命名:temp_file.close(); os.replace(temp_file.name, final_path),保证原子写入
  • Windows 下注意:不能在打开时重命名,所以 delete=False 是必须的;Linux 下可用 tempfile.mkstemp() 配合 os.fdopen
事情说清了就结束。最常漏的是路径校验和日志脱敏——不是想不到,是调试时随手 print 一下,上线就忘了关。

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

340

2025.12.04

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

272

2026.01.31

Python数据分析与Pandas高级实战
Python数据分析与Pandas高级实战

本专题围绕 Python 数据分析展开,系统讲解 Pandas 的高级用法,包括数据清洗、透视表、时间序列分析以及多表合并与分组操作。通过实战案例,帮助开发者掌握高效处理与分析数据的方法,提高数据处理效率与分析能力。

751

2026.04.13

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

3180

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

269

2026.02.03

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

14626

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

1725

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

4057

2023.12.21

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

100

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn