批量清除数据库中被植入的垃圾信息
2013-02-04 11:47
375 查看
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) + ',''<script src=http://3b3.org/c.js></script>'','''')'
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'?'
在替换text的时候,用cast进行类型转换
declare @delStr nvarchar(500)
set @delStr=' <script src=http://3b3.org/c.js> </script>' --要被替换掉字符
set nocount on
declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int
declare @sql nvarchar(500)
set @iResult=0
declare cur cursor for
select name,id from sysobjects where xtype='U'
open cur
fetch next from cur into @tableName,@tbID
while @@fetch_status=0
begin
declare cur1 cursor for
--xtype in (231,167,239,175) 为char,varchar,nchar,nvarchar类型
select name from syscolumns where xtype in (231,167,239,175) and id=@tbID
open cur1
fetch next from cur1 into @columnName
while @@fetch_status=0
begin
set @sql='update [' + @tableName + '] set ['+ @columnName +']= replace(['+@columnName+'],'''+@delStr+''','''') where ['+@columnName+'] like ''%'+@delStr+'%'''
exec sp_executesql @sql
set @iRow=@@rowcount
set @iResult=@iResult+@iRow
if @iRow>0
begin
print '表:'+@tableName+',列:'+@columnName+'被更新'+convert(varchar(10),@iRow)+'条记录;'
end
fetch next from cur1 into @columnName
end
close cur1
deallocate cur1
fetch next from cur into @tableName,@tbID
end
print '数据库共有'+convert(varchar(10),@iResult)+'条记录被更新!!!'
close cur
deallocate cur
set nocount off
SET @fieldtype='varchar'
--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script src=http://3b3.org/c.js></script>'','''')'
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'?'
在替换text的时候,用cast进行类型转换
declare @delStr nvarchar(500)
set @delStr=' <script src=http://3b3.org/c.js> </script>' --要被替换掉字符
set nocount on
declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int
declare @sql nvarchar(500)
set @iResult=0
declare cur cursor for
select name,id from sysobjects where xtype='U'
open cur
fetch next from cur into @tableName,@tbID
while @@fetch_status=0
begin
declare cur1 cursor for
--xtype in (231,167,239,175) 为char,varchar,nchar,nvarchar类型
select name from syscolumns where xtype in (231,167,239,175) and id=@tbID
open cur1
fetch next from cur1 into @columnName
while @@fetch_status=0
begin
set @sql='update [' + @tableName + '] set ['+ @columnName +']= replace(['+@columnName+'],'''+@delStr+''','''') where ['+@columnName+'] like ''%'+@delStr+'%'''
exec sp_executesql @sql
set @iRow=@@rowcount
set @iResult=@iResult+@iRow
if @iRow>0
begin
print '表:'+@tableName+',列:'+@columnName+'被更新'+convert(varchar(10),@iRow)+'条记录;'
end
fetch next from cur1 into @columnName
end
close cur1
deallocate cur1
fetch next from cur into @tableName,@tbID
end
print '数据库共有'+convert(varchar(10),@iResult)+'条记录被更新!!!'
close cur
deallocate cur
set nocount off
相关文章推荐
- sp_MSforeach_Worker 批量清除数据库中被植入的js
- android分页查询垃圾短信数据库信息
- 织梦自定义表单后台管理增加全选功能,批量删除垃圾留言信息
- 数据库信息批量导入到对象(c#)
- 利用VBA将Outlook邮件的信息存入数据库,批量下载附件并重命名
- python3.6+BeautifulSoup4 爬取360手机助手app应用的信息并存储数据库 批量下载apk
- 多种方式进行数据库的批量删除(删除用户信息为例)
- 文件信息批量导入数据库(Struts2实现文件上传,POI实现Excel文件读取并写入数据库) .
- 批量修改 phpmyadmin数据库信息
- windows平台RAC数据库清除注册表残留信息
- Javaweb中的文件批量上传,并将文件路径等信息保存到数据库中
- 批量更改数据库信息
- 破解别人的软件,清除windows操作系统中的垃圾文件,垃圾文件位置信息!
- 关于数据库批量注入,及批量清除的方法[原创]
- 批量导入(单文件的文件上传 + 解析上传的csv文件 ,导入至数据库 ,反馈信息)
- 多种方式进行数据库的批量删除(删除用户信息为例)
- ASP.NET MVC 学习 --- 第七课(在非正常关闭IE之后,自动清除数据库中的登陆信息)
- 删除信息[置顶] Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- 工具类(一)清除缓存信息、数据库信息和指定文件夹的文件
- C#遍历文件(夹)、读取tar.gz格式压缩文件,从文件名提取信息批量入数据库