前几天网站遭到SQL数据库注入攻击,我对抗了两个通宵,终于找到一个办法解决了。现在过去四天,网站正常,终于可以松一口气了。
(希望那些黑客看到这里,拜托拜托,我只是想把自己的这个武冈人网搞好,并不表示什么其他的意思,网站程序是我自己乱写的,我并不是专业的开发人员,你们也就手下留情,不要再来找我漏洞攻击了。谢谢。)
那几天为了防范SQL数据库注入攻击,整天就呆在电脑前,常常欲哭无泪,因为才弄好又被攻击。后来把这个过程写了一篇文章,发到网上,每天都有很多人加我QQ,要我帮忙解决他们网站这个同样的问题,这也让我很汗颜。被别人称为高手,而实际上我对这些并不懂的。
我只是一个自学了一点ASPNET技术的爱好者,并非专业的开发人员,我写的程序也是漏洞百出的。对服务器管理,以及攻击,防范这些都没有接触,举个例子来说,人家往往问我,什么端口、协议之类的术语,我其实都不懂。
我解决武冈人网的攻击问题,也是自己乱摸索出来的,同时也非常感谢有个网友提供了一段加在global里面的防注入代码。下面我把我自己解决的过程详细介绍一下。
1、在第二天,很多次恢复数据又被攻击之后,我把数据库用户的权限,修改成db_datareader,修改成这个,数据库只能读出来,不能写进去。之后我等了两个小时,发现网站正常,说明服务器应该没有问题吧,就是网站程序有问题。注意,如果修改成这个权限,网站一样被攻击,说明服务器肯定中毒或有木马等问题,最好重装。
2、尽管服务器好像没有问题,我还是去装了一个杀毒软件(之前没有装,只有防火墙),把一些补丁给升级打上。
3、把一段防注入的代码,加在Global的文件中。代码是在网上找的。
4、我把所有的后台修改了一下。之前有设成ValidateRequest="false"的,给删除掉了。因为我之前写的时候,图自己排版方便,可以在后台直接输入HTML代码。现在碰到这个问题,只好先删除不用,另想办法。
5、这样弄完之后,我再把数据库权限,增加一个db_datawrite的权限,可以写进去了,再把所有的存储过程的权限,一一勾上。这样网站就正常使用了。
其实我就是这样解决的。我自己总结一下,大家都说网站代码有问题,对于一个初学和不成熟的程序员来说,当然很多地方都是直接使用SQL查询语句的,我的代码虽然很多都是使用了参数,但仍然有一些UPDATE语句,直接用上了SQL查询语句,当然,经过这次教训之后,以后再也不敢偷懒了。所以网站代码写的时候,还是多费一些时间,写好一点。
另外就是数据库权限,我建议最好不要使用什么SA之类的用户,也不要把用户设成db_owner这样的权限。
呵呵,我就是这样子做了,到现在网站还是正常的。
免责声明: 本文内容来源于黄高远 ,不代表本平台的观点和立场。
版权声明:本文内容由注册用户自发贡献,版权归原作者所有,武冈人网仅提供信息存储服务,不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭的内容,请通过邮箱(admin@4305.cn)进行举报,一经查实,本站将立刻删除涉嫌侵权内容。