LELexEdge词汇锋面
网络安全专业术语

SQLi

SQL Injection

SQL 注入 · 用一条 SQL 语句偷走整个数据库

攻击/渗透应用安全
SQLI
定义
SQLiSQL Injection网络安全领域的专业术语SQLi 通过在用户输入中注入恶意 SQL 代码来操纵数据库查询,可以绕过认证、窃取数据甚至删除整个数据库。

最后更新:2026-03-18

什么是SQLi?

SQLi 通过在用户输入中注入恶意 SQL 代码来操纵数据库查询,可以绕过认证、窃取数据甚至删除整个数据库。虽然是最古老的 Web 漏洞之一,但至今仍然常见。

  • OWASP Top 10 的常客,历史最悠久的 Web 漏洞
  • 参数化查询是最有效的防御手段
  • ORM 框架大幅降低了 SQLi 风险但未完全消除

SQLi详解

SQL 注入是 Web 安全中最经典的攻击类型,通过将恶意 SQL 代码插入应用程序的输入字段来操纵后端数据库。攻击类型包括:联合查询注入、布尔盲注、时间盲注和带外注入。防御的黄金法则是使用参数化查询(Prepared Statements),永远不要拼接用户输入到 SQL 语句中。现代 ORM 框架(如 Drizzle、Prisma)默认使用参数化查询,大幅降低了 SQLi 风险,但原生 SQL 查询和存储过程仍是潜在风险点。

SQLi的应用场景

正式定义

通过在应用程序输入中注入恶意 SQL 代码来操纵后端数据库的攻击技术

应用场景

  • Web 应用安全测试
  • 数据库安全评估
  • 安全编码培训

常见误区

  • 使用 ORM 不等于完全免疫 SQLi,原生查询仍有风险
  • SQLi 不只能读数据,还能写入、删除甚至执行系统命令
  • WAF 可以缓解但不能根治 SQLi

实际案例

📌 经典 SQLi 绕过认证

登录表单的用户名输入 ' OR 1=1 --,如果后端直接拼接 SQL,查询变成 SELECT * FROM users WHERE username='' OR 1=1 --',条件永真,直接绕过认证。

SQLi的参考来源

关于SQLi的常见问题

SQL 注入还常见吗
虽然 ORM 和参数化查询普及后减少了,但在遗留系统和手写 SQL 的场景中仍然常见,是 OWASP Top 10 常客。
怎么防御 SQL 注入
使用参数化查询/预编译语句、ORM 框架、输入验证、最小权限数据库账户,永远不要拼接用户输入到 SQL。