【网站安全】简单的Js脚本攻击sql注入攻击
2017-08-03 11:37
183 查看
实训的第一个月过去 了,那个CRM项目也要告一段落了,到了最后老师检查作业的时候。
没想到老师居然要用骚操作来 测试,一上来就来个js脚本攻击,然后接着一个sql注入登陆。
额,mmpd。之前也没这样讲啊。不然肯定不会这样写 啊。什么js剔除关键符号关键字,sql带参数的。
现在想去改,工作量太大了。就做个输入替换处理吧 。
string szTmp = "safdsfdsafdsfytrsd";
szTmp = Server.UrlEncode(szTmp);
接收
STRING STRA=Server.UrlDecode(request.querystring(szTmp));
另外说一句:网上那些被人奉如圣经的过滤 update insert 等关键字的程序是用处不大的 upupdatedate 过滤掉 update还是update
还会造成不必要的麻烦
下面通过两个方面给大家介绍js代码防止sql注入的方法,非常简单实用,感兴趣的朋友参考下吧!
1.URL地址防注入:
//过滤URL非法SQL字符
var sUrl=location.search.toLowerCase();
var sQuery=sUrl.substring(sUrl.indexOf("=")+1);
re=/select|update|delete|truncate|join|union|exec|insert|drop|count|'|"|;|>|<|%/i;
if(re.test(sQuery))
{
alert("请勿输入非法字符");
location.href=sUrl.replace(sQuery,"");
}
2.输入文本框防注入:
function AntiSqlValid(oField )
{
re= /select|update|delete|exec|count|'|"|=|;|>|<|%/i;
if ( re.test(oField.value) )
{
//alert("请您不要在参数中输入特殊字符和SQL关键字!"); //注意中文乱码
oField.value = ";
oField.className="errInfo";
oField.focus();
return false;
}
ps:网上论坛上面,整理得到的。
没想到老师居然要用骚操作来 测试,一上来就来个js脚本攻击,然后接着一个sql注入登陆。
额,mmpd。之前也没这样讲啊。不然肯定不会这样写 啊。什么js剔除关键符号关键字,sql带参数的。
现在想去改,工作量太大了。就做个输入替换处理吧 。
1、关键字符号"<>/-' "替换
data: { Action: "getLogin", username: ($("#username").val() + "").replace(/<|>|\/|-|'|"/g, ""), password: ($("#password").val() + "").replace(/<|>|\/|-|'|"/g, ""), LoginVerStr: ($("#verifycode").val() + "").replace(/<|>|\/|-|'|"/g, ""), },
2、如何批量删除数据库中被注入的代码?
DECLARE @fieldtype sysname SET @fieldtype='varchar' --删除处理 DECLARE hCForEach CURSOR GLOBAL FOR SELECT N'update '+QUOTENAME(o.name) +N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')' FROM sysobjects o,syscolumns c,systypes t WHERE o.id=c.id AND OBJECTPROPERTY(o.id,N'IsUserTable')=1 AND c.xusertype=t.xusertype AND t.name=@fieldtype EXEC sp_MSforeach_Worker @command1=N'?'
3、创建一个触发器,只要有</script>就不给插入
ps:对性能会有点影响create trigger tr_table_insertupdate on tablename for insert,update as if exists ( select 1 from inserted where data like '%</script>%' ) begin RAISERROR ('不能修改或者添加',16,1); ROLLBACK TRANSACTION end go
4、防止sql注入,采用带参数的sql语句
//添加信息 StringBuilder sql = new StringBuilder( " insert into m_phone ( pid,PhoneName,num,price,phonetype,onSellTime,color,weight,Video,Camera,phoneSize,phoneSystem,Memorysize,PhoneDesc,Standbytime,ScreenSize,Frequency,InputMethod,Soundrecord,gps,fm,mp3,email,Infrared,game,clock,Calendar,Calculator,Bluetooth) "); sql.Append(" values (@pid,@TextPhoneName,@Textnum,@Textprice,@Dropphonetype2,@TextonSellTime,@Textcolor,@Textweight "); ................. SqlParameter[] paras = { new SqlParameter("@pid", SqlDbType.Int, 4) , new SqlParameter("@TextPhoneName", SqlDbType.NVarChar, 50) , new SqlParameter("@Textnum", SqlDbType.Int, 4) , new SqlParameter("@Textprice", SqlDbType.Int, 4) , new SqlParameter("@Dropphonetype2", SqlDbType.VarChar, 20) , new SqlParameter("@TextonSellTime", SqlDbType.DateTime, 8) , new SqlParameter("@Textcolor", SqlDbType.VarChar, 20) , new SqlParameter("@Textweight", SqlDbType.NVarChar, 50) , ........... };
5、通过URL传递的参数要用加密解密
传输string szTmp = "safdsfdsafdsfytrsd";
szTmp = Server.UrlEncode(szTmp);
接收
STRING STRA=Server.UrlDecode(request.querystring(szTmp));
另外说一句:网上那些被人奉如圣经的过滤 update insert 等关键字的程序是用处不大的 upupdatedate 过滤掉 update还是update
还会造成不必要的麻烦
下面通过两个方面给大家介绍js代码防止sql注入的方法,非常简单实用,感兴趣的朋友参考下吧!
1.URL地址防注入:
//过滤URL非法SQL字符
var sUrl=location.search.toLowerCase();
var sQuery=sUrl.substring(sUrl.indexOf("=")+1);
re=/select|update|delete|truncate|join|union|exec|insert|drop|count|'|"|;|>|<|%/i;
if(re.test(sQuery))
{
alert("请勿输入非法字符");
location.href=sUrl.replace(sQuery,"");
}
2.输入文本框防注入:
function AntiSqlValid(oField )
{
re= /select|update|delete|exec|count|'|"|=|;|>|<|%/i;
if ( re.test(oField.value) )
{
//alert("请您不要在参数中输入特殊字符和SQL关键字!"); //注意中文乱码
oField.value = ";
oField.className="errInfo";
oField.focus();
return false;
}
ps:网上论坛上面,整理得到的。
相关文章推荐
- 网站安全技术—预防脚本攻击
- ASP.NET温故而知新学习系列之网站安全技术—预防脚本攻击(二)
- 安全测试:脚本攻击与SQL注入攻击
- IE中无法执行JS脚本 解决WINDOWS SERVER 2008弹出INTERNET EXPLORER增强安全配置正在阻止来自下列网站的内容
- 浅谈跨网站脚本攻击(XSS)的手段与防范(简析新浪微博XSS攻击事件)
- 简单的检查网站是否正常脚本
- 简单高效防注入攻击的动态多参数、动态SQL语句拼接方法,提高网站的安全性
- 用JS写个简单的抢课脚本
- SharePoint 2010 您可能试图从服务器上的安全浏览器访问此网站。请启用脚本然后重新加载此页。
- 跨网站脚本攻击(XSS)的原理与防范对策
- nodejs+express搭建简单的电影网站之 express安装
- 简单Js脚本用于Html中绝对位置的控件定位
- 网站安全之XSS漏洞攻击以及防范措施
- 一个使用了nodejs+express的简单jsonp接口模拟脚本
- Html中JS脚本执行顺序简单举例说明
- 怎么样防网站被跨脚本攻击
- C#调用脚本语言(三)-- IronJS 与 IronLua 简单方法性能比较
- node.js做的一个简单爬虫,适合菜鸟级新手,针对无防爬措施的网站
- nginx&&apache最简单的网站安全策略实现
- 完善网站程序 脚本攻击防范策略完全篇