搜索

pdf文档 01. 邓良驹 编写更安全的Python代码

988.40 KB 18 页 1 下载 92 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档主要介绍了编写更安全的Python代码的方法和注意事项。内容包括如何避免代码风险,如对外部输入进行检查、避免敏感信息泄露、使用虚拟环境隔离项目、定期更新系统和依赖包等。文档还提到了常见不安全代码示例及其应对措施,如谨慎使用eval、assert语句,避免PyPI依赖包的潜在风险,并建议使用Bandit工具进行代码安全检查。最后,文档强调了多重防御的重要性,包括安全编码、系统配置、充分测试和安全操作规范。
AI总结
# 如何编写更安全的Python代码 ## 核心观点总结 1. **输入验证与过滤** - 默认不信任外部输入,严格检查和过滤所有外部数据。 - 对内部逻辑进行验证,例如购买后余额应减少而非增加。 2. **安全原则** - **最小权限原则**:仅授予代码运行所需的最小权限,避免越权漏洞。 - **奥卡姆剃刀原则**:采用最简单的设计和配置,减少复杂性带来的缺陷。 3. **代码检查与防护** - 使用工具(如Bandit)检查代码,规避常见不安全写法。 - 定期清理缓存数据和非业务代码的固有数据,减少入侵风险。 4. **敏感信息处理** - 加密存储和传输敏感信息,避免明文存储。 - 避免将敏感数据保留在内存中,包括`locals()`和`globals()`可访问的区域。 5. **依赖管理** - 谨慎选择第三方PyPI包,避免依赖潜在漏洞或恶意代码。 - 使用工具(如Pyup和Chef InSpect)定期检查和更新依赖。 6. **安全意识与规范** - 定期关注Python相关的CVE和OWASP安全报告,排查代码中的潜在缺陷。 - 避免使用`eval`等危险函数,改用安全的替代方案。 - 避免在业务逻辑中使用`assert`语句,仅用于开发和测试。 7. **多重防御** - 结合安全编码、系统配置、充分测试和安全操作规范,构建多层次的安全防护体系。 8. **版本与更新** - 使用最新版本的Python,保持操作系统、解释器和依赖包的更新,尤其是安全更新。 9. **安全文化** - 提高安全意识,将安全视为代码开发的第一优先级。 - 避免因疏忽导致的安全事故,牢记“代码千万行,安全第一行”。 --- ## 重点工具与资源 - **代码检查工具**:Bandit - **依赖更新工具**:Pyup - **安全规范工具**:Chef InSpect - **安全报告**:CVE(https://cve.mitre.org/)和OWASP(https://www.owasp.org/) - **参考资料**: - “驹说码事”系列文章(如《注入的原理与防御措施》和《如何import一个不存在的对象》) --- ## 注意事项 - **PyPI包风险**:高Star包也可能存在漏洞,恶意包甚至可能伪装为目标模块。 - **eval函数风险**:避免直接使用`eval`,建议采用更安全的替代方案。 - **assert语句误用**:仅用于开发和测试,不应用于业务逻辑中的权限控制或条件检查。 --- ## 总结 编写安全的Python代码需要从输入验证、权限管理、依赖防护、工具支持和安全意识等多个方面入手。通过遵循最小权限原则、奥卡姆剃刀原则,结合代码检查工具和安全规范,可以有效降低代码风险。同时,保持对安全动态的关注,定期更新依赖和系统,是确保代码长期安全的重要手段。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 6 页请下载阅读 -
文档评分
请文明评论,理性发言.