Sql注入代码被插入到我的数据库中。如何删除它
答
您可以使用html代码以符号<
开头的事实。然后:
UPDATE TableName
SET SomeColumn = CASE WHEN CHARINDEX('<', SomeColumn) > 0
THEN SUBSTRING(SomeColumn, 1, CHARINDEX('<', SomeColumn) - 1)
ELSE SomeColumn END
如果这不是真的,那么我们将需要更多关于数据的信息。可能根本不可能......
答
好吧,不知道更多关于您的问题,我只能建议寻找不需要的东西的典型模式,然后运行一些UPDATE
s和其中合适的REPLACE()
陈述。
如果你在使用MySQL ...被我根本没看到SQL服务器标签; -/
...较短版本的Giorgi的解决方案将是:
UPDATED tableName SET infestedCol=substring_index(infestedCol,'<',1)
不幸的是,你不能在这里为搜索模式使用正则表达式,它必须是正确的情况。
最重要的是,确保你没有得到更多的东西,所以进一步保护你的用户表单。
+0
Karan Foto Electronics
–+0
这是我的样本数据 –
+0
在这只有“Karan Foto Electricals”是原始数据之一。其他注射。如何删除。此代码在全表中受到保护。该表包含3000多行 –
问题是什么?只要您在显示数据之前转义HTML,您就可以免费入住。这不是SQL注入,但它存储XSS,并且只有当你不转义HTML。 – Tobb
这是服务器安全问题还是我写的代码 –
这取决于,但本身存储在数据库中的HTML不是问题。只有当您将它显示为html时,才会出现该问题,即您不会转义HTML值,以便浏览器将其解释为html。如果你逃脱它,它会显示为文本(XML)。无论你是在途中(在存放之前)还是在出路(在放映之前)逃避事情取决于你。 – Tobb