文章目录
前言
本文会有具体的例子解释什么是SQL注入
一、SQL注入是什么?
百度百科是这么说的:SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
嗯,好像看懂了也好像没看懂?那我给你来个例子解释一下。
二、举例
假设我们要做一个登录功能
需要用户输入用户名(username)和密码(password)
我们获取到用户输入的username和password是不是就可以向后端发送请求了
能想到最简单的sql就是:
查找user表中username和password都与用户输入的username、password一致的数据
String sql = "select * from user where username = '"+username+"' and password = '"+password+"'";
假设用户输入:
张三
123456’or’1’=‘1’
SQL语句会被曲解成什么样子?
查找user表中username和password都与用户输入的use