Я пытаюсь удалить тонну спама, который был введен в блог клиента.Одна из проблем заключается в том, что хак, который изначально делал инъекцию, сделал это таким образом, что он фактически завелся с неправильно сформированными многокомпонентными ссылками, поэтому у меня возникают проблемы с их кратким захватом.
Моя мысльдолжен был сбросить все ссылки в таблице записей в текстовый файл, затем удалить действительные из этого списка и создать оттуда скрипт bash, который удалял вредоносные по одной строке за раз.Я пытался использовать не жадный grep для создания дампов ссылок, иначе в случаях, когда в посте было более одной ссылки, он шел от начала первой ссылки до конца последней.Это строка, которую я использовал:
grep -Po "<a href=[\'\"][^\'\"]*[\'\"]>.*?</a>" wp_posts.sql>full-link-list.txt
Проблема возникает, когда он пытается проанализировать ссылки, встроенные в другие ссылки.Например, я получаю следующее:
<a href="http://blogtorn.com/images/">where <a href="http://clinesite.com/images/">buy n viagra </a>
из раздела, подобного следующему:
<a href="http://blogtorn.com/images/">where <a href="http://clinesite.com/images/">buy n viagra </a> do you buy viagra | buy cialis phentermine | cheap levitra online</a>
Не все ссылки разрываются, как это, хотя, и если я уберу те, что выводятся изКоманда выше, я думаю, будет очень трудно выследить обломки.Я думаю, что мне нужно либо что-то, что захватывает весь блок (т. Е. Совпадающее отверстие <a href
с таким же количеством закрывающих </a>
), либо просто наименьшее возможное внутреннее совпадение (т. Е. Жадное изнутри), и язатем сделайте это в несколько проходов, но я открыт и для других предложений.Есть мысли по этому поводу?Спасибо!