栏目导航
热点推荐
- 心得:Sql语句绝妙用法
- SQL Server数据转换服务小妙招
- SQL Server数据库常用的T-SQL命
- 详解SQLServer 存储过程
- SQL数据库挂马解决方案
- 分析 SQL Server 的内存为何不断
- SQL Server数据库查询速度慢的原
- 详细讲解删除SQL Server日志的具
- 三步骤快速创建SQL Server数据库
- SQL Server事务日志的几个常用操
- SQLServer应用程序中的高级SQL注
- 使用SQL Server 2008进行服务器
阅览排行
批量删除sql中被注入的恶意代码
www.jz123.cn 2009-05-06 来源: 中国建站 责任编辑(袁袁) 我要投递新闻
1,如果你的数据表很少的话,那么写几条简单的sql就搞定了
对于表中的nvchar类型的字段:
以下为引用的内容: update news set title=replace(title,'【恶意代码】','') |
对于表中的text类型的字段:
以下为引用的内容: update news set content=Replace(Cast(content as varchar(8000)),'【恶意代码】','') |
2,如果你是sql2000的话,可以用下面这个。
以下为引用的内容: DECLARE @fieldtype sysname SET @fieldtype='varchar' --删除处理 DECLARE hCForEach CURSOR GLOBAL FOR SELECT N'update '+QUOTENAME(o.name) +N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''【恶意代码】'','''')' FROM sysobjects o,syscolumns c,systypes t WHERE o.id=c.id AND OBJECTPROPERTY(o.id,N'IsUserTable')=1 AND c.xusertype=t.xusertype AND t.name=@fieldtype EXEC sp_MSforeach_Worker @command1=N'?' |
(这个是我网上搜索的,据说sql2000下可以,但我没试过,在sql2005下无法执行。)
3,sql2005下我选择的方法是先生成清理代码的语句,然后把运行结果复制到查询分析器里执行之,当然在sql2000下一样可以用。
以下为引用的内容: select 'update ['+s.name + '] set ['+c.name+']=' +'replace(['+c.name+'],''【恶意代码】'','''')' from sysobjects s,syscolumns c,systypes t where s.type='u' and s.id=c.id AND OBJECTPROPERTY(s.id,N'IsUserTable')=1 AND c.xusertype=t.xusertype AND t.name IN('varchar','nvarchar','char','nchar') union select 'update ['+s.name + '] set ['+c.name+']=' +'replace(Cast(['+c.name+'] as varchar(8000)),''【恶意代码】'','''')' from sysobjects s,syscolumns c,systypes t where s.type='u' and s.id=c.id AND OBJECTPROPERTY(s.id,N'IsUserTable')=1 AND c.xusertype=t.xusertype AND t.name IN('text','ntext') |
ps:以上是buzhizhe在处理问题时候整理的,方法1、2是网上搜索的,对于我的sql2005无用,因此写了方法3,以便帮助不懂安全的菜鸟临时解决问题。
1
上一篇:编写和优化SQL Server的存储过程 下一篇:SQL Server 压缩日志及数据库文件大小