当前位置:K88软件开发文章中心编程语言SQLSQL01 → 文章内容

使用JS技术防止SQL注入

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 1:46:40

:2011-01-22 15:10:45

SQL注入攻击的主要原因是在动态生成Sqlming令时没有对用户输入的数据进行验证。

假如你的查询语句为:

select * from admin where username='"&user&"' and passWord='"&pwd&"'"

若我的用户名输入的是:1' or '1'='1则,查询语句变成了:

select * from admin where username='1 or '1'='1' and password='"&pwd&"'"

这样你的查询语句就通过了,从而使攻击者进入了你的管理界面。

所以我们要想些方法杜绝用户输入这些特殊字符,如单引号,双引号,分号,逗号,冒号,连接号等。

我们可以通过相关方法来过滤这些字符,需要过滤的字符主要有:
   net user
   xp_cmdshell
   /add
   exec master.dbo.xp_cmdshell
   net localgroup administrators
   select
   count
   Asc
   char
   mid
   '
   :
   "
   insert
   delete from
   drop table
   update
   truncate
   from
   %

下面我们介绍一种使用JS技术防止SQL注入的方法,以供大家学习参考。

<script language="javascript">
<!--
var url = location.search;
var re=/^\?(.*)(select%20|insert%20|delete%20from%20|count\(|drop%20table|update%20truncate%20|asc\(|mid\(|char\(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|\"|:|net%20user|\'|%20or%20)(.*)$/gi;
var e = re.test(url);
if(e) {
alert("传入的地址中含有非法字符!");
location.href="index.asp";
}
//-->
<script>

通过以上方法,我们可以杜绝用户在传递参数时输入非法的字符。



使用JS技术防止SQL注入