【发布时间】:2010-09-07 03:21:49
【问题描述】:
我的任务是维护一个最近成为 SQL 注入攻击受害者的非营利性网站。有人利用网站上的表单向数据库中每个可用的类似文本的字段(varchar、nvarchar 等)添加文本,当呈现为 HTML 时,该字段包含并执行 JavaScript 文件。
对该 URL 的 Google 搜索表明它来自罗马尼亚或中国的垃圾邮件发送者,但这不是现在重要的。
我检查并手动从网站上最可见和最受欢迎的页面上呈现的文本字段中删除了信息,但我很好奇从其他文本字段中删除文本的最佳编程方式是什么在网站上。
显然还有更多工作要做(加强网站以防止 SQL 注入,使用 markdown 之类的东西而不是存储 HTML 等),我正在努力解决这些问题,但目前我真正需要的是一个好方法进入并以编程方式删除注入的文本。我知道确切的文本是什么,每次都是一样的,而且它总是附加到任何文本字段的末尾。我现在无法删除数据库中的所有 HTML,而且我不知道这到底是什么时候发生的,所以我不能只是回滚到备份。此外,该站点位于共享主机上,我无法使用 SQL Server 工具直接连接到数据库。不过,我可以对它执行查询,所以如果有任何方法可以构建一个 SQL 更新语句,以达到“嘿,找到整个数据库中所有表中的所有文本字段并这样做来清理它们”的效果,那将是最好的。
【问题讨论】:
标签: sql sql-server database security