SQL面试题更新 2026-08-05

请从定义、分类、实施方式与防护策略四个层面,系统阐述SQL注入这一安全威胁,并说明其成因与对应防御手段。

风险判断安全意识技术原理SQL

考察说明

考查对SQL注入本质的理解、攻击手法的分类掌握以及防御手段的系统性认识。

回答思路

  1. 【回答框架 1】定义:SQL注入是攻击者将恶意SQL代码拼接到用户输入中,改变原有查询逻辑,从而非授权访问或操作数据库的攻击方式,其根本成因是未对输入进行有效过滤或参数化处理,使输入被当作SQL语法执行。
  2. 【回答框架 2】分类:按注入点可细分为字符型与数字型;按数据获取方式可分为联合查询注入、布尔盲注、时间盲注、报错注入和堆叠查询注入等,其中报错注入利用数据库错误信息反馈数据,盲注则是通过页面表现或时间延迟逐位推断数据。
  3. 【回答框架 3】利用流程:发现注入点后,先判断注入类型,再确定注入位置与权限,随后通过构造payload提取数据,常用工具包括sqlmap等自动化工具,但需注意绕过WAF时可能需要手工构造或编码绕过。
  4. 【回答框架 4】防御策略:首要采用参数化查询(预处理语句)或存储过程,确保输入仅作为数据处理而非执行;其次对输入进行严格校验与白名单过滤,限制数据库连接权限并最小化应用权限,同时部署并维护Web应用程序防火墙(WAF)以拦截恶意请求,并定期进行安全测试与代码审计。
  5. 【关键点 1】SQL注入本质是SQL代码与用户输入未分离,导致恶意SQL被执行。
  6. 【关键点 2】按注入方式分类:联合查询、报错、盲注(布尔/时间)、堆叠查询等。
  7. 【关键点 3】防御核心是参数化查询,辅以输入校验、最小权限原则和WAF。
  8. 【关键点 4】利用过程需先探测注入点类型,再构造payload提权或提取数据。
  9. 【易错点 1】不可认为过滤单引号和关键字就能彻底防御,需使用参数化查询。
  10. 【易错点 2】存储过程若内部拼接SQL仍有注入风险,并非一定安全。
  11. 【易错点 3】仅依赖WAF无法根治,因为可被绕过,源码层防御才是根本。