В последнее время меня стало напрягать увеличение количества SQL-иньекций в MS SQL базах моих сайтов, когда к многим текстовым полям добавляются скрытые спамерские ссылки. Ссылки заключаются в тэги <div style="display: none"></div>, что делает их невидимыми на страницах сайтов, но понижает рейтинг страниц в поисковых системах.
Чтобы посмотреть или выбрать зараженные записи в таблице. можно воспользоваться скриптом на T-SQL:
SELECT * FROM table WHERE (pole LIKE '<div style="display: none">')
Когда количество таких записей в таблице достигает больших значений, то удаление зараженных строк становится проблематичным и в этом случае можно воспользоваться следующим скриптом:
update table set pole =SUBSTRING(pole,0,CharIndex('<div style="display: none">',pole)) where pole like '%<div style="display: none">%'
Этот скрипт подчищает "концы" всех записей с содержимым <div style="display: none">, при этом не изменяет исходную информацию.
Ну и наконец после удаления ненужных текстов можно защитить конкретное поле таблицы от записи в них текстов с содержащих строку <div style="display: none">
Для этого необходимо на этой таблице сформировать триггер следующего содержания:
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: none">%')
ROLLBACK;
END
Все это конечно временное решение и нужно искать истинную причину заражения.
Иногда пользователи MS SQL 2008 сталкиваются с проблемой, что не могут изменить структуру уже созданных ранее таблиц. При попытке изменения структуры выходит следующее сообщение:
«Сохранение изменений запрещено. Чтобы сохранить изменения, необходимо удалить и повторно создать следующие таблицы. Либо изменения вносятся в таблицу, которую невозможно создать повторно, либо включен параметр «Запретить сохранение изменений, требующих повторного создания таблицы»»
Чтобы решить этк проблему достаточно в Management Studio Сервис->Параметры->Конструкторы->Убрать галочку с соответствующего пункта:
В свое время пробовал размещать свои сайты на разных хостингах, как на бесплатных, так и на платных. Но каждый раз, через некоторое время я уходил от них по разным причинам. Бесплатные, понятно, обладают ограниченным функционалом, да и некоторые со временем либо закрывались, либо становились платными. Но вот на платных хостингах меня не устраивали другие причины. Некоторые был достаточно дорогими, другие не обеспечивали нужный мне функционал, у третьих была неудобная панель управления и другие неудобства. На одном хостинге все сайты были за прокси сервером и все пользователи заходящие на мои сайты имели один статический адрес, а мне необходимо было отслеживать IP-адреса, другие хостинги имели отвратительную поддержку, а на одном хостинге утратили все мои сайты без возможности восстановления.
Вот так я скитался от хостинга к хостингу пока не обнаружил замечательный хостинг ISPServer.ru, на котором в настоящее время размещены все мои сайты. В отличии от предыдущих, хостинг ISPServer.ru имеет довольно демократичные цены, несколько разных тарифов, но одном из которых я имею возможность размещать до 10 сайтов, и столько же баз данных MS MQL Server. Хостинг имеет отличную панель управления и круглосуточную, доброжелательную поддержку, готовую решить оперативно все возникающие проблемы. Ну и самым главным для меня преимуществом на этом хостинге является поддержка не только PHP, но и ASP.NET совместно с базами данных MS SQL Server.
Вообщем рекомендую всем этот хостинг, а для заинтересованных могу дать мою реферальную ссылку ISPServer.ru, вам ничего не убудет, а мне на пиво накапает ;) Можете воспользоваться моим промокодом 345303344, для получения скидки