SQL SERVER替换字段中的一类字符
数据库被挂马了,字符是<script>***</script>,中间的内容不定,想寻求一种可以模糊批量替换这类字符为空的SQL语句,只要是带有<script>不定内容</...
数据库被挂马了,字符是<script>***</script> ,中间的内容不定,想寻求一种可以模糊批量替换这类字符为空的SQL语句,只要是带有<script>不定内容</script>的内容,全部替换成空。希望各位大师给予解答,谢谢!
展开
展开全部
最好还是别采用模糊替换,因为可能你的数据库中的比如说文章里面也可能有script 况且 replace只能替换制定的内容,不存在模糊替换,当然可以用程序实现,但是相对复杂。
你这类问题我也遇到过,我建议按下面的方法去替换.
1.查询select * from 表 where 列 like %'script'%;
2.得到 script代码后,复制好。
3.执行语句
update 表 set 列=replace(covert(varchar(8000),列),'要替换的',‘替换字符’)
4.如果还有script 恶意代码 重复上面三个步骤
你这类问题我也遇到过,我建议按下面的方法去替换.
1.查询select * from 表 where 列 like %'script'%;
2.得到 script代码后,复制好。
3.执行语句
update 表 set 列=replace(covert(varchar(8000),列),'要替换的',‘替换字符’)
4.如果还有script 恶意代码 重复上面三个步骤
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询