每日益智,检验你的信息安全知识储备

Q
今日挑战 · SQL注入攻击原理与防范
【单选题】
容易
某电商网站后台登录页面存在SQL注入漏洞,攻击者在用户名输入框中提交了以下内容:' OR '1'='1' -- ,成功绕过了身份验证。请问该攻击利用了SQL注入的哪种原理?以下哪项措施能最有效地防范此类攻击?
A. 利用数据库错误信息泄露来猜测表结构;使用WAF(Web应用防火墙)拦截恶意请求
B. 通过拼接字符串改变SQL语句的原始逻辑,使得条件恒为真;使用参数化查询(Prepared Statement)
C. 通过注入UNION查询获取其他表的数据;对输入进行简单的黑名单过滤
D. 利用时间延迟函数进行盲注;关闭数据库的错误回显功能
🤔
正确答案与解析在下方
想一想你的答案是什么?
准备好了再往下滑动 👇
📌 答案与解析
正确答案:B
A. 利用数据库错误信息泄露来猜测表结构;使用WAF(Web应用防火墙)拦截恶意请求
✅ B. 通过拼接字符串改变SQL语句的原始逻辑,使得条件恒为真;使用参数化查询(Prepared Statement)
C. 通过注入UNION查询获取其他表的数据;对输入进行简单的黑名单过滤
D. 利用时间延迟函数进行盲注;关闭数据库的错误回显功能
答案解析
题干中的攻击语句 ' OR '1'='1' -- 通过闭合原有单引号并添加恒真条件'1'='1',再用注释符 -- 注释掉后续SQL语句,从而绕过了密码验证,这是典型的基于字符串拼接的SQL注入。参数化查询(Prepared Statement)将SQL语句与数据分离,由数据库引擎预编译,用户输入仅作为参数传递,不会改变SQL语句结构,因此能有效防范此类注入。选项A中的WAF可辅助防御但非最根本措施;选项C的黑名单过滤容易被绕过;选项D关闭错误回显仅增加攻击难度,不能阻止注入本身。
小贴士
关注「数据安全早知道」公众号,每天持续更新!
答题不在于正确率,而在于理解背后的安全原理。
数安早知道
🔗 数据安全与信息安全知识库 datasafe.website
— 点击上方链接访问知识库,获取更多安全资讯 —