Sql注入代码被插入到我的数据库中。如何删除它

问题描述:

我的一个sql表注入了一些html代码。它被插入,以便在实际数据之后插入html标签。如何从我的表中删除这个。Sql注入代码被插入到我的数据库中。如何删除它

+0

问题是什么?只要您在显示数据之前转义HTML,您就可以免费入住。这不是SQL注入,但它存储XSS,并且只有当你不转义HTML。 – Tobb

+0

这是服务器安全问题还是我写的代码 –

+0

这取决于,但本身存储在数据库中的HTML不是问题。只有当您将它显示为html时,才会出现该问题,即您不会转义HTML值,以便浏览器将其解释为html。如果你逃脱它,它会显示为文本(XML)。无论你是在途中(在存放之前)还是在出路(在放映之前)逃避事情取决于你。 – Tobb

您可以使用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

why do married men cheat on their wives why do men cheat on their wife click
+0

这是我的样本数据 –

+0

在这只有“Karan Foto Electricals”是原始数据之一。其他注射。如何删除。此代码在全表中受到保护。该表包含3000多行 –