SuperAPI AI 工具集

sql-injection-anti-pattern

安全与审计

查看项目

更新于 10-15 22:16

技能介绍

用途:该技能面向 SQL 注入漏洞(CWE-89),在生成或审查构造数据库查询、拼接 SQL 的代码时提供安全反模式指导,帮助识别并规避注入风险。严重级别为 Critical。

主要能力:说明攻击者如何通过操纵用户输入执行任意 SQL 命令,导致数据库被入侵、数据外泄、认证绕过和远程代码执行;指出字符串拼接查询(常见于 AI 基于不安全训练数据生成)是主要成因。

反模式与示例:反模式是把用户数据拼接到 SQL 语句中,使攻击者能破坏查询结构并注入恶意 SQL。资料给出 Python sqlite3 的不安全写法:query = "SELECT * FROM users WHERE username = '" + username + "'",随后 cursor.execute(query)。攻击输入 username = "admin' OR '1'='1' --" 会返回所有用户,绕过认证。安全写法使用参数化查询:query = "SELECT * FROM users WHERE username = ?",再 cursor.execute(query, (username,));也可用命名参数 :username 配合字典传参。

检测方法:查找用于构建 SQL 的字符串拼接(+、||、concat()、f-string、模板字面量);查找接收单个可能含用户输入的字符串变量的 execute()、query()、raw() 调用;检查 SQL 字符串中的 .format()、%s、${};审查任何基于用户输入动态构造 SQL 而未正确参数化的代码。

预防:始终使用参数化查询与预编译语句;绝不拼接用户输入;使用带内置防护的 ORM(SQLAlchemy、Django ORM、Hibernate);遵循最小权限原则;输入校验作为纵深防御的补充而非主要手段。

相关模式:命令注入、LDAP 注入、XPath 注入反模式,以及缺失输入校验反模式。参考资料包括 OWASP Top 10 A05:2025、OWASP GenAI LLM01:2025、OWASP API Security API8:2023、OWASP SQL 注入防护速查表、CWE-89、CAPEC-66、PortSwigger。具体安装与调用方式暂未提供。