一般开发,肯定是在前台有两个输入框,一个用户名,一个密码,会在后台里,读取前台传入的这两个参数,拼成一段SQL,例如:
select count(1) from tab where usesr=userinput and pass = passinput,把这段SQL连接数据后,看这个用户名/密码是否存在,如果存在的话,就可以登陆成功了,如果不存在,就报一个登陆失败的错误 。对吧 。但是有这样的情况,这段SQL是根据用户输入拼出来,如果用户故意输入可以让后台解析失败的字符串,这就是SQL注入,例如,用户在输入密码的时候,输入 '''' ' or 1=1'', 这样,后台的程序在解析的时候,拼成的SQL语句,可能是这样的:
select count(1) from tab where user=userinput and pass='' or 1=1; 看这条语句,可以知道,在解析之后,用户没有输入密码,加了一个恒等的条件 1=1,这样,这段SQL执行的时候,返回的 count值肯定大于1的,如果程序的逻辑没加过多的判断,这样就能够使用用户名 userinput登陆,而不需要密码 。
防止SQL注入,首先要对密码输入中的单引号进行过滤,再在后面加其它的逻辑判断,或者不用这样的动态SQL拼 。
文章插图
sql什么意思网络用语?
sql全称是结构化查询语言,即Structured Query Language,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名 。
【sql是什么意思,sql什么意思网络用语?】SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作 。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口 。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能 。
- been是什么意思,been是什么形式?
- pdd是什么意思,pdd全称?
- 自愈是什么意思,自然自愈的意思?
- 嫡子是什么意思,嫡子庶子嗣子世子区别?
- 厚此薄彼是什么意思,重此薄彼是成语吗?
- sl是什么意思,sl什么意思?
- 介词是什么意思,什么是名词动词形容词副词介词?
- 亡羊补牢的牢是什么意思,亡羊补牢各个字的意思?
- 无欲无求是什么意思,无欲无求的意思?
- 自性自度什么意思,修己度人什么意思?