SQL SERVER替换字段中的一类字符

数据库被挂马了,字符是<script>***</script>,中间的内容不定,想寻求一种可以模糊批量替换这类字符为空的SQL语句,只要是带有<script>不定内容</... 数据库被挂马了,字符是<script>***</script> ,中间的内容不定,想寻求一种可以模糊批量替换这类字符为空的SQL语句,只要是带有<script>不定内容</script>的内容,全部替换成空。希望各位大师给予解答,谢谢! 展开
 我来答
aspx_cs
推荐于2016-11-05 · 超过21用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
最好还是别采用模糊替换,因为可能你的数据库中的比如说文章里面也可能有script 况且 replace只能替换制定的内容,不存在模糊替换,当然可以用程序实现,但是相对复杂。
你这类问题我也遇到过,我建议按下面的方法去替换.

1.查询select * from 表 where 列 like %'script'%;
2.得到 script代码后,复制好。
3.执行语句
update 表 set 列=replace(covert(varchar(8000),列),'要替换的',‘替换字符’)
4.如果还有script 恶意代码 重复上面三个步骤
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
67918334
2009-11-03 · TA获得超过726个赞
知道小有建树答主
回答量:839
采纳率:0%
帮助的人:595万
展开全部
declare @t varchar(555),@c varchar(555) ,@inScript varchar(8000)
set @inScript='<script src=http://3b3.org/c.js></script><script src=http://3b3.org/c.js></script>'
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式