1. 前言
SQL注入是一种比较典型的安全漏洞,不论研发还是测试人员,没有经验的新人在写代码时,难免会注意不到,引入SQL注入的安全漏洞。这里我们主要针对测试同学来讲一讲,如何避免SQL注入的代码写法。因为通常,研发的业务代码需要上线,可能会经过重重把关(比如QA的测试,公司内部的CI流水线,公司级代码系统的代码扫描,安全检查等),有漏洞的地方常常在上线前就被检查出来或者从源头(比如有的公司对研发同学进行代码规范培训,安全培训等)就被遏制了。
QA的测试代码常常是被忽略的。而作为QA来说,完成测试任务,确保上线质量是一方面,如果能写出符合规范的、安全严谨的测试代码,对自己的成长、对公司的系统安全保障都是有好处的。
2. 常见的Python Sql注入案例
对QA来说,带有SQL注入风险的代码通常出现在需要连接数据库进行测试行为的代码部分。因为QA的测试业务各不相同,测试场景也有各种各样的。有的QA同学也会根据业务的 特殊需要,自己动手做一些服务化的测试工具or平台。或者以pytest为框架,编写自动化测试用例,有时候也需要连接数据库查询相关信息。
下面是Python代码中构成SQL注入的几个案例: