我的任务是维护一个最近遭受SQL注入攻击的受害者的非营利性网站。有人利用站点上的表单将文本添加到数据库中每个可用的类似文本的字段(varchar,nvarchar等)中,当将其呈现为HTML时,该字段将包含并执行JavaScript文件。
Google对URL的搜索表明它来自罗马尼亚或中国以外的垃圾邮件发送者,但是现在这并不重要。
我仔细检查并手动从显示在网站上最可见和最受欢迎的页面上的文本字段中删除了信息,但我很好奇从站点上其他文本字段中删除文本的最佳编程方式是什么。
显然,还有更多的工作要做(针对SQL注入强化站点,使用markdown代替存储HTML等),我正在努力解决这些问题,但是暂时我真正需要的是一种很好的方法并以编程方式删除注入的文本。我知道确切的文本是什么,每次都是一样的,并且总是附加到任何文本字段的末尾。目前,我无法删除数据库中的所有HTML,而且我不知道何时确切地发生了,因此我无法回滚到备份。另外,该站点位于共享主机上,我无法使用SQL Server工具直接连接到数据库。不过,我可以针对它执行查询,因此,如果有任何方式构造一个SQL更新语句,效果是“
从最近的备份中还原数据。