首 页IT知识库翔宇问吧收藏内容
当前位置:翔宇亭IT乐园IT知识库数据库SQL专栏

使用JS技术防止SQL注入

减小字体 增大字体 作者:不详  来源:转载  发布时间:2011-01-22 15:10:45

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>

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


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2022 biye5u.com. All Rights Reserved.