元旦过了,刚上班就接到朋友的求救电话,说他的网站被黑客攻击了,上不去了,我登录上去用fidder跟踪看了一下,网站的连接被导向一个有病毒的网站,所以无法登陆,造成网络堵塞。我看了他网站的程序,发现是asp写的,且写的很烂,没有任何防范措施,asp早该扔掉的东西他还在用,读取数据库的代码都在页面里,很容易被攻击,找了好久发现是利用SQL注入的方式注入了非法字符。找到原因解决就容易了,先堵住sql注入,安装微软的urlsacn,在conn前加入脚本过滤。在把数据库的数据修改正确,数据库里的数据很大,查找很累,就写了一个脚本查找指定的字符替换调就可了。
大家要注意,sql的replace函数不支持ntext数据类型的,还好他里面的数据都在8000字符以内,
updagte 表名 set 字段1=replace(convert(nvarchar(8000),字段1),'指定字符','替换为的字符')
用这个sql,找到被修改的字段替换一下,问题彻底解决了,哈哈