最近出现很多数据库被攻击案例,在数据库中的文本型字段中加入了script代码

 

最近出现很多数据库被攻击案例,在数据库中的文本型字段中加入了script代码

现给出一段基于mssql的解决代码:

 

替换数据里所有表的所有字符型字段中的某些值

declare @ReplaceSourceStr varchar(100),@ReplaceDescStr varchar(100)
select @ReplaceSourceStr='<script>',@ReplaceDescStr=''
select 'update '+tbls.name+' set [' + cols.name + ']=replace(['+cols.name+'],'''+@ReplaceSourceStr+''','''+@ReplaceDescStr+''')'
from
(select * from sysobjects where xtype='u') tbls
inner join
syscolumns cols on cols.id=tbls.id
where cols.xtype in (select xtype from systypes where name in('varchar','nvarchar'))

生成的语句类似如下:

update set ...

update set ...

...

 

本代码只生成更新语句,不执行具体更新操作! 

 

注: 由于涉及到数据库数据更改,所以此代码仅做参考,如果使用不当造成的损失,请自己负责!

 

posted @ 2009-12-21 09:46  Gavin Liu  阅读(314)  评论(0)    收藏  举报

Right people get the right information at the right time.
以技术求生存,以市场求发展;学以至用,开拓创新;达技术之颠峰,至市场之广阔!