欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

网站注入与防范的方法总结

创建时间:2011年10月15日 20:20  阅读次数:(5926)
分享到:
今天在逛CSDN时,看到一篇总结网站注入与防范的方法,感觉比较实在,整理一下发布在此。

1,检查服务器配置,确保服务器的安全性。服务器的安全设置,可以参考以下方法:
http://hi.baidu.com/zzxap/blog/item/18180000ff921516738b6564.html
这个是讲解的比较全面的了。

2,使用麦咖啡自定义策略。这样即使网站存在漏洞,别人也很难在程序上改写代码了。麦咖啡自定义策略可以参照下面网站:
http://hi.baidu.com/zzxap/blog/item/efe093a7e0f2c190d04358ef.html

3,如果你的网站已经被挂马了,可以使用网络超级巡警快速地删除被注入的JS代码,网络超级巡警的使用方法可以参考下面网站:
http://blog.csdn.net/zzxap/archive/2010/04/07/5459065.aspx

4,如果你的数据库中被注入了js代码,我们可以利用SQL语句批量清除数据库中被植入的js。
SQL语句参考如下:
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://xxx.com/xx.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'?'
当然,具体的被植入的代码自己修改。

5,保证数据库中不再被植入JS代码。这点我们可以利用数据库的触发器来完成。写一个insert与update触发器检查插入或修改的内容中是否包含恶意代码,如果有,那么禁止此次数据的操作。当然,这样会损耗服务器一部分性能,取与舍,看具体的情况了。
触发器参考如下:
create trigger tiu_tablename
on tablename
for insert,update
as
if exists (
select 1 from inserted 
where data like '%</script >%'
)
begin
       RAISERROR ('数据中包含危险数据,此次操作失败!',16,1);
       ROLLBACK TRANSACTION
end
go

6,最重要的,是我们程序的安全性。在程序中,我们的SQL中,最好是使用参数化SQL或者存储过程,比较危险的就是根据用户的输入来拼凑SQL了,处理的不好,就被恶意用户攻击了。参数化,当然就是使用SqlParameter了,具体的用法请自已搜索。

7,不要在页面或者url中显示网站的敏感数据。特别是url中,曾经看到有朋友直接就把用户名与密码在url中以明文传递了,这样,别人很容易从我们的参数名称上猜到数据的含义,留下了漏洞。
对于网站错误,我们可以将错误信息以文本存起来或者存到数据库中,然后跳转到一个友好的出错页面,即给了用户亲和性,又避免了在错误中会抛出敏感信息的隐患。
对于URL中的参数,一定要加密后再传值,接收时再解密。这样一是安全,二是避免传值错误。

关于URL参数的编码与解码,请参看本站:Url编码与解码分析

8,将从用户输入的文本框中的单引号替换成双引号再传到SQL使用:
如:string keys=keys_1.replace("'","''")。
但如果你是使用了参数化SQL,则就不用处理单引号了。

另外,网站盛传的过滤掉SQL关键字,如insert update delete等的方法,既麻烦又无用。(原作的观点,本人强烈赞同)

欢迎大家发表自己防范SQL注入的方法与观点,如果大家对上面观点有补充或者批评,请在评论中发表您的观点,一起讨论,才会有进步。
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 99+68=? 的结果(结果是:167)
结  果: