问问题
1195 次
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
我想这些将是理想情况下的一些步骤:
- 使您的网站保持离线状态。也许您想显示“技术维护”消息而不是 404。
- 备份被黑客入侵的数据库,您可能需要稍后对其进行分析
- 确保修复易受 SQL 注入攻击的代码片段。我建议在团队中执行此操作,以便更彻底。
- 从备份中恢复数据库
- 上传(希望)固定主页
- 请联系您的律师,因为您可能泄露了客户数据。
- 您将与您的律师讨论接下来的法律步骤。
正如您所提到的,被黑页面上没有存储敏感材料,这可能意味着您可以跳过第 6 步和第 7 步。
于 2012-04-13T13:31:33.337 回答
1
如果您有备份,这是使用备份的理想时机,因为您不确切知道数据是如何损坏的。如果您没有备份,那么这应该是将来使用备份并保护自己免受此类攻击的教训。此外,如果您没有备份,您应该创建一个清理数据的算法,但这并不能保证不会留下任何垃圾。
于 2012-04-13T12:19:34.793 回答
0
首先 防止 SQL 注入
然后,从最近的备份中恢复数据。
于 2012-04-13T12:12:13.300 回答