В последнее время меня стало напрягать увеличение количества SQL-иньекций в MS SQL базах моих сайтов, когда к многим текстовым полям добавляются скрытые спамерские ссылки. Ссылки заключаются в тэги <div style="display:n0ne"></div>, что делает их невидимыми на страницах сайтов, но понижает рейтинг страниц в поисковых системах.
Чтобы посмотреть или выбрать зараженные записи в таблице. можно воспользоваться скриптом на T-SQL:
SELECT * FROM table WHERE (pole LIKE '<div style="display:n0ne">')
Когда количество таких записей в таблице достигает больших значений, то удаление зараженных строк становится проблематичным и в этом случае можно воспользоваться следующим скриптом:
update table set pole =SUBSTRING(pole,0,CharIndex('<div style="display:n0ne">',pole)) where pole like '%<div style="display:n0ne">%'
Этот скрипт подчищает "концы" всех записей с содержимым <div style="display:n0ne">, при этом не изменяет исходную информацию.
Ну и наконец после удаления ненужных текстов можно защитить конкретное поле таблицы от записи в них текстов с содержащих строку <div style="display:n0ne">
Для этого необходимо на этой таблице сформировать триггер следующего содержания:
CREATE TRIGGER [dbo].[back]
ON [dbo].[table]
AFTER UPDATE, INSERT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT * FROM table WHERE pole LIKE '%<div style="display:n0ne">%')
ROLLBACK;
END
Все это конечно временное решение и нужно искать истинную причину заражения.