2015-06-22 34 views
-1

我的一個sql表注入了一些html代碼。它被插入,以便在實際數據之後插入html標籤。如何從我的表中刪除這個。Sql注入代碼被插入到我的數據庫中。如何刪除它

+0

問題是什麼?只要您在顯示數據之前轉義HTML,您就可以免費入住。這不是SQL注入,但它存儲XSS,並且只有當你不轉義HTML。 – Tobb

+0

這是服務器安全問題還是我寫的代碼 –

+0

這取決於,但本身存儲在數據庫中的HTML不是問題。只有當您將它顯示爲html時,纔會出現該問題,即您不會轉義HTML值,以便瀏覽器將其解釋爲html。如果你逃脫它,它會顯示爲文本(XML)。無論你是在途中(在存放之前)還是在出路(在放映之前)逃避事情取決於你。 – Tobb

回答

0

您可以使用html代碼以符號<開頭的事實。然後:

UPDATE TableName 
SET SomeColumn = CASE WHEN CHARINDEX('<', SomeColumn) > 0 
         THEN SUBSTRING(SomeColumn, 1, CHARINDEX('<', SomeColumn) - 1) 
         ELSE SomeColumn END 

如果這不是真的,那麼我們將需要更多關於數據的信息。可能根本不可能......

0

好吧,不知道更多關於您的問題,我只能建議尋找不需要的東西的典型模式,然後運行一些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
<012 style =「display:none」> –

+0

這是我的樣本數據 –

+0

在這隻有「Karan Foto Electricals」是原始數據之一。其他注射。如何刪除。此代碼在全表中受到保護。該表包含3000多行 –

相關問題