一、什么是SQL注入?

       所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

二、教务系统怎么sql注入?

       有些高校教务系统含有找回密码页面,在学号处输入xxxxxx'or '1'='1#

        xxxxxx是随便一学号,然后后面姓名,身份证号全部随便输,点击查询,xxxxxx学号的密码就会被查询出来。

三、sql注入原理

        首先网页textbox返回的是字符串,xxxxxx'or '1'='1# 这里为输入的学号。

        当sql语句为

select * 
from stuinfo 
where xh='+textbox1.text+' and sfid='+textbox2.text+'

       加上刚刚输入的学号变成

select * 
from stuinfo 
where xh='xxxxxx'or '1'='1#' and sfid='+textbox2.text+'

      注意!在sql语句中#的用来注释,所以sfid的条件被注释掉了,从而达到只需要学号就能查密码!

四、sql注入怎么修复?

       客户端:利用js检测是否符合上述的神秘代码,是返回就false(不建议使用,可以通过自己编写网页POST达到屏蔽效果)

       服务器:在点击查询后,服务器进行一个判断

C#  ASP.NET修复代码:

if (textBox1.Text.Substring(textBox1.Text.Length - 1) == "#")
            { return "含有可疑字符"; }


PHP修复代码:

$str=$_POST["xh"];
if (substr($str, -1) == "#")
 { return "含有可疑字符"; }


VB ASP修复代码:

if (right(str,1)== "#")
 { return "含有可疑字符"; }