SQL数据库每天被插入js垃圾

zhijie284 2009-09-14 01:26:16
我的SQL数据库里每天都被插入js代码,有时候我在清理他在插入,实在是要崩溃了,那个知道怎么样彻底解决这个问题啊!插入的都是<Script Src=**********.js> </Script>
的东西。我用的是动易的cms系统,那个大侠看看有没有好点的办法!
...全文
144 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfyeshi 2009-09-21
  • 打赏
  • 举报
回复
1.检查你的服务器,有可能是服务器安全性不高。
2.把你的数据库的密码和权限重新设置下
3.升级到动易最新的版本【个人认为动易的过滤还是比较严格的】
zhijie284 2009-09-21
  • 打赏
  • 举报
回复
似乎过于笼统,还没有一个彻底可行的办法!
amwdgv 2009-09-16
  • 打赏
  • 举报
回复
網站有漏洞
CMS_God 2009-09-16
  • 打赏
  • 举报
回复
可惜不能用啊 比较郁闷
ywfsoft 2009-09-16
  • 打赏
  • 举报
回复
服务器可能是中病毒了,建议装杀毒软件,和防火墙!
CMS_God 2009-09-16
  • 打赏
  • 举报
回复
楼上大果写的很深奥啊
flyerwing 2009-09-15
  • 打赏
  • 举报
回复
把<>
转成字符就好了。
黑心 2009-09-15
  • 打赏
  • 举报
回复
--数据库中数据被插入<Script Src=**********.js> </Script>脚本 解决办法:
declare @t varchar(555),@c varchar(555) ,@inScript varchar(8000)
set @inScript='这里复制病毒代码'
declare table_cursor cursor for select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
open table_cursor
fetch next from table_cursor into @t,@c
while(@@fetch_status=0)
begin
exec('update ['+@t+'] set ['+@c+']=replace(cast(['+@c+'] as varchar(8000)),'''+@inScript+''','''')' )
fetch next from table_cursor into @t,@c
end
close table_cursor
deallocate table_cursor;
--清除后,务必严格过滤传值和控制数据库字段长度,改密码。
当下透明 2009-09-15
  • 打赏
  • 举报
回复
看他是知道了你的sql账号密码,还是cms哪个页面进行提交的
zhijie284 2009-09-15
  • 打赏
  • 举报
回复
我的是sql数据库啊哥哥,不是ac的
li1229363 2009-09-15
  • 打赏
  • 举报
回复
对数据库进行加密吧。你的数据库已经被人家找到了规律。

先把你的数据库的扩展名修改成可以被IIS解析的扩展名。
zhijie284 2009-09-15
  • 打赏
  • 举报
回复
我用的是动易的cms系统,程序基本上没有修改,我看了很多防止sql注入的文章,可是我用起还没有理想的,欢迎大家继续探讨!
ywwr 2009-09-15
  • 打赏
  • 举报
回复
我也碰到过这样的问题.
是通过cookie注入的,大多数人直接写request("xxx"),不写request.form("xx")或request.querystring("xx").

可以看看这边文章
http://blog.163.com/bianxuedong/blog/static/2817441320093141068330/


我的解决方法是在数据库连接代码加上这个:



If Request.QueryString <> "" Then Call StopInjection(Request.QueryString)
If Request.Cookies <> "" Then Call StopInjection(Request.Cookies)
If Request.Form <> "" Then Call StopInjection(Request.Form)


Sub StopInjection(Values)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "'|;|([\s\b+()]+(select|update|cast|varchar|0x440|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b+]*)"
Dim sItem, sValue
For Each sItem In Values
sValue = Values(sItem)
If regEx.Test(sValue) Then
Response.Write "<Script Language=javascript>alert('非法注入!!!');history.back(-1);</Script>"

Response.End
End If
Next
Set regEx = Nothing
End Sub

yanniu008 2009-09-14
  • 打赏
  • 举报
回复
不要用拼接SQL 用参数式SQL
该判断类型和长度的地方要做判断
不耐烦 2009-09-14
  • 打赏
  • 举报
回复
后台上传 调用 包含页 加权限
zhijie284 2009-09-14
  • 打赏
  • 举报
回复
大哥,这个早都启用了,启用还是防不住的
duduotianya 2009-09-14
  • 打赏
  • 举报
回复
根目录下

Config.asp

Const EnableStopInjection = True '是否启用防SQL注入功能,True为启用
zhijie284 2009-09-14
  • 打赏
  • 举报
回复
兄弟,问题没有那么简单啊
itakeblue 2009-09-14
  • 打赏
  • 举报
回复
提交加来路判断;
加验证码;
提交的时候做判断,包含"<Script"拒绝提交;
记录ip,每小时超过几次提交屏蔽该ip地址

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧