3
4

4 回答 4

2

专门回答您的脚本标签替换问题,除了手动任务之外,我看不到任何其他内容。

我相信你已经考虑过这一点,但是一个简单的字段替换语句应该可以解决这个问题:

update MyTable
set field = replace(field, 'unwanted', '')
where field like '%unwanted%'

如果有很多表和字段,那么我相信您可以使用 SQl 数据字典来实现某种自动化。类似于以下内容:

DECLARE @ColName varchar(255), @TableName varchar(255), @sSQL varchar(1000)
DECLARE colcur CURSOR for
 SELECT name, object_name(id) 
   FROM syscolumns
  WHERE name = 'Moniker'

  OPEN ColCur
 FETCH NEXT FROM ColCur 
  INTO @ColName, @TableName

WHILE @@FETCH_STATUS = 0
BEGIN
    Set @sSQL = 'update ' + @TableName + ' set ' + @ColName + ' = replace(' + @ColName + ', ''unwanted'', '''') where ' + @ColName + ' like ''%unwanted%'''

    exec(@sSQL) 

    select @ColName, @TableName
    FETCH NEXT FROM ColCur 
    INTO @ColName, @TableName
END 

CLOSE ColCur
DEALLOCATE ColCur
于 2012-04-13T12:17:40.807 回答
2

我想这些将是理想情况下的一些步骤:

  1. 使您的网站保持离线状态。也许您想显示“技术维护”消息而不是 404。
  2. 备份被黑客入侵的数据库,您可能需要稍后对其进行分析
  3. 确保修复易受 SQL 注入攻击的代码片段。我建议在团队中执行此操作,以便更彻底。
  4. 从备份中恢复数据库
  5. 上传(希望)固定主页
  6. 请联系您的律师,因为您可能泄露了客户数据。
  7. 您将与您的律师讨论接下来的法律步骤。

正如您所提到的,被黑页面上没有存储敏感材料,这可能意味着您可以跳过第 6 步和第 7 步。

于 2012-04-13T13:31:33.337 回答
1

如果您有备份,这是使用备份的理想时机,因为您不确切知道数据是如何损坏的。如果您没有备份,那么这应该是将来使用备份并保护自己免受此类攻击的教训。此外,如果您没有备份,您应该创建一个清理数据的算法,但这并不能保证不会留下任何垃圾。

于 2012-04-13T12:19:34.793 回答
0

首先 防止 SQL 注入

然后,从最近的备份中恢复数据。

于 2012-04-13T12:12:13.300 回答