所谓sql注入式攻击,就是攻击者把sql命令插入到web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的sql命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态sql命令,或作为存储过程的输入参数,这类表单特别容易受到sql注入式攻击.常见的sql注入式攻击过程类如: 【程序编程相关:m文件转c/c++后的打包问题】
一.什么是sql注入式攻击? 【推荐阅读:改变表的一列的缺省值】
⑵ 登录页面中输入的内容将直接用来构造动态的sql命令,或者直接用作存储过程的参数.下面是asp.net应用构造查询的一个例子: 【扩展信息:我的收藏夹】
⑴ 某个asp.net web应用有一个登录页面,这个登录页面控制着用户是否有权访问应用,它要求用户输入一个名称与密码.
system.text.stringbuilder query = new system.text.stringbuilder(
select * from users where login = ) .append(txtlogin.text).append( and password=) .append(txtpassword.text).append();⑶ 攻击者在用户名字与密码输入框中输入或1=1之类的内容.
⑷ 用户输入的内容提交给服务器之后,服务器运行上面的asp.net代码构造出查询用户的sql命令,但由于攻击者输入的内容非常特殊,所以最后得到的sql命令变成:select * from users where login = or 1=1 and password = or 1=1.
⑸ 服务器执行查询或存储过程,将用户输入的身份信息与服务器中保存的身份信息进行对比.
⑹ 由于sql命令实际上已被注入式攻击修改,已经不能真正验证用户身份,所以系统会错误地授权给攻击者.
... 下一页