2016-03-25 42 views
2

我已經諮詢過幫助一個被數據庫中有大量鏈接注入成千上萬行的被黑客入侵的數據庫。Mysql搜索並用正則表達式去除

鏈接注射的基本格式似乎總是如下:

<a href="http://SOME-RANDOM-LINK-HERE.com/" style="text-decoration:none;color:#676c6c">SOME RANDOM TEXT HERE</a> 

基本上我需要刪除所有包含的text-decoration:none;color:#676c6c

一個樣式屬性的標籤我正在尋找最快解。無論是正則表達式還是其他內容,都非常感謝任何指導。謝謝!

+1

請舉例說明你想要刪除的內容。 –

+0

爲什麼不使用HTML解析器並遍歷元素,刪除那些不需要的元素?用正則表達式來做這件事通常會導致非常糟糕的結果。在PHP這樣的腳本語言中,這比直接在MySQL中做得更好。 – tadman

+0

爲什麼不簡單地從備份恢復?您應該考慮應用程序和數據庫遭到破壞,從備份中恢復,然後進行修補。 – Sammitch

回答

2

你可以使用這個正則表達式來查找注入的鏈接。

正則表達式:<a .*? style="text-decoration:none;color:#676c6c".*?>.*?<\/a>

這將尋找<a></a>style="text-decoration:none;color:#676c6c"。這不會觸及其他鏈接。

Regex101 Demo

您也應該檢查這answer如何在MySQL中不更換