首页 > 数据库 > 文库 > 正文

使用JS技术防止SQL注入

2024-09-07 22:12:22
字体:
来源:转载
供稿:网友

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

假如你的查询语句为:

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>

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表