• SQL中批量删除被注入的恶意代码的方法


    下文将为您介绍SQL中批量删除被注入的恶意代码的方法,供您参考,如果您也遇到了这样的问题,不妨一看,相信对您会有所帮助。

    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,以便帮助不懂安全的菜鸟临时解决问题。

  • 相关阅读:
    设计模式-简单工厂模式、工厂模式、抽象工厂模式-(创建型模式)
    设计模式-类间关系
    设计模式-六大基本原则
    设计模式-总起
    [转载]常见的移动端H5页面开发遇到的坑和解决办法
    [转载]Angular4 组件通讯方法大全
    【angular5项目积累总结】文件下载
    【转载】Vue 2.x 实战之后台管理系统开发(二)
    [转载]Vue 2.x 实战之后台管理系统开发(一)
    WordPress翻译中 __()、_e()、_x、_ex 和 _n 的用法及区别
  • 原文地址:https://www.cnblogs.com/dodui/p/3193109.html
Copyright © 2020-2023  润新知