推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 翼安研习社 > 【Web安全漏洞】- 什么是SQL注入?

【Web安全漏洞】- 什么是SQL注入?

翼安研习社 2021-04-08


 小故事 

● 某个公司有一个员工管理系统,里面存储员工的许多信息,每个员工只要输入自己的工号就可查询自己相关信息。张三是这个公司的一个开发人员,他突发好奇的想输入李四的工号10001是否可以成功查询,结果他失败了,因为系统有工号和身份的互相校验;于是他在工号后面加上了一个' OR 'a'='a,没想到成功返回了数据,他成功获取到了他人的许多敏感信息。



先来看个小视频,简单粗暴地认识一下SQL注入👇

带你了解SQL注入|抖音@翼安研习社


什么是SQL注入

 由于程序员在开发数据库交互程序过程中,没有对用户输入数据进行校验、转义、限制或者处理不当,导致攻击者可以通过输入恶意字符串去非法获取数据库中的数据。


SQL注入危害

 盗取网站的敏感信息

 绕过验证,直接登入网站后台

 进行权限提升等操作


SQL注入条件

 执行数据库交互的数据可以从外部输入或者外部可控

 这些数据并没进行严格的校验、转义、限制等处理

 使用了不能确保安全的数据库操作方法


示例 🌰

String userName = obj.getName();String num= request.getParameter("number");String query = "SELECT * FROM student WHERE name= '" + userName + "' AND number= '" + num + "'";ResultSet rs = stmt.execute(query);

👆左右滑动查看完整代码


分析:

当num的值为 1001' OR 'a'='a,此时的sql语句为:SELECT * FROM student WHERE name= 'zhangsan' AND num = '1001' OR 'a'='a';相当于执行以下语句:SELECT * FROM student

👆左右滑动查看完整代码


防御方式

【Web安全漏洞】- 什么是SQL注入?

如何防御SQL注入



信息收集|代码审计团队

撰稿|代码审计团队

视频|代码审计团队

编辑|虞珍妮

【Web安全漏洞】- 什么是SQL注入?
【Web安全漏洞】- 什么是SQL注入?

翼安研习社

知乎|翼安研习社

抖音|翼安研习社

CSDN|翼安研习社

新浪微博|翼安研习社

【Web安全漏洞】- 什么是SQL注入?

球分享

球点赞

球在看

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【Web安全漏洞】- 什么是SQL注入?》的版权归原作者「翼安研习社」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注翼安研习社微信公众号

翼安研习社微信公众号:YiAnSociety

翼安研习社

手机扫描上方二维码即可关注翼安研习社微信公众号

翼安研习社最新文章

精品公众号随机推荐