什么是sql注入?sql注入有哪些方式?防止sql注入又有哪些方式(.Net下)

下面的方法是通过过滤掉特殊的字符
那百度的搜索框对这些特殊的字符又是怎样的处理,

所谓SQL注入,其实是程序漏洞,没有什么技术,比如下面的语句就可能被注入
SQL="SELECT * FROM ADMIN WHERE USER='" &REQUEST("USER")& "' AND PASS ='" &REQUEST("PASS")& "'"

别人可以精心设计一个PASS参数提交给你,使得你的SQL完成其它功能,例如PASS的值为:
abc' OR USER='admin

这时候SQL语句是什么样子,你看看:
SELECT * FROM ADMIN WHERE USER='admin' AND PASS='abc' OR USER='admin'

任何密码都可以成功登录。

解决的方法:程序应该判断USER和PASS这些参数里面是否有引号等特殊符号。

上面是一个简单的例子,通过提交精心设计的参数,还可以修改你的数据库。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-28
SQL 语句注入,防止的话:用存储过程或自己编写代码检测
第2个回答  2009-04-28
sql注入是一种网络病毒,详细在百渡搜索
第3个回答  2009-04-28
sql注入
可以理解为一种编程漏洞,
例如你做了一个登陆界面,后台有一个USER表,
你写了如下SQL语句,
SELECT USERNAME,PASS FROM USER WHERE USERNAME = '"+inputUser+"' AND PASS='"+inputPass+"'

其中,inputUser和inputPass是从你的界面取值,这样只能让不了解这个系统的用户按规则,添正确的值,
如:inputUser = 张三
inputPass=123

如果有人知道你要杳的是什么表,
inputPass的值如下,
inputPass= 123'; DELETE USER;

形式就是如上,只要你的拼出一个完整的字符串,就有可能执行恶意SQL

这就是SQL注入.

防止办法,使用预处理API执行SQL

Java preparedstatement
SQL变成如下形式
SELECT USERNAME,PASS FROM USER WHERE USERNAME = ? AND PASS= ?
preparedstatement.setObject(1,value);
preparedstatement.setObject(2,value);
preparedstatement.executeQuery();

.NET
SELECT USERNAME,PASS FROM USER WHERE USERNAME = :PARAM1 AND PASS= :PARAM1

以上就可以防止SQL注入

什么是sql注入?sql注入有哪些方式?防止sql注入又有哪些方式(.Net下)
所谓SQL注入,其实是程序漏洞,没有什么技术,比如下面的语句就可能被注入 SQL="SELECT * FROM ADMIN WHERE USER='" &REQUEST("USER")& "' AND PASS ='" &REQUEST("PASS")& "'"别人可以精心设计一个PASS参数提交给你,使得你的SQL完成其它功能,例如PASS的值为:abc' OR USER='admin 这时候...

什么是sql注入,如何防止sql注入
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照...

什么是sql注入,怎么防止注入?
sql注入其实就是在这些不安全控件内输入sql或其他数据库的一些语句,从而达到欺骗服务器执行恶意到吗影响到数据库的数据。防止sql注入,可以在接受不安全空间的内容时过滤掉接受字符串内的“'”,那么他不再是一条sql语句,而是一个类似sql语句的zifuc,执行后也不会对数据库有破坏。如:username = requ...

什么是SQL注入,如何防止SQL注入?
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是...

什么叫做SQL注入,如何防止?请举例说明。
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如: ⑴ 某个ASP.NET Web...

sql注入方式和防御?
注入方式:QL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。防御:如果是.net的后台 比如sql语句是 id='"+ textbox.Text +"' 就会被注入, 如果id=@idcommand.parameters.addWithValue("@id",textbox.Text) 这样就可以。用replace...

什么是sql注入,怎么防止sql注入
相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身...

什么是sql注入,怎么防止注入
sql注入攻击,就是利用程序员开发时候操作数据库的低级错误进行攻击。主要手段就是利用拼接字符串来实现一些操作。工具呢,也有一些,你搜索一下就能找到。不过这种攻击明显已经过时了,尤其是有了linq以后,正式退出了历史舞台。

防止sql注入有哪几种方法?怎么防止sql注入
首先,使用预编译语句(PreparedStatement)是避免SQL注入的高效方法。预编译语句不仅提高了查询性能,还内置了对抗SQL注入的机制,确保了输入数据安全。在使用Hibernate框架时,采用name:parameter方式查询,如利用find方法执行SQL查询,同样能有效防止SQL注入。在编写查询方法时,应先检查SQL语句,去除或转换可能...

制作网站时,SQL注入是什么?怎么注入法?
防御SQL注入有妙法 第一步:很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用 来防止别人进行手动注入测试。可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。第二步:对于注入分析器的防范,笔者通过实验...

相似回答