Декодирование HTML тегов в SQL

Время чтения - 1 мин.Дата публикации 13.04.2021 (обновлено 21.05.2026)

Экранирование HTML в SQL: простая защита от XSS

Эта функция — ваш базовый щит от XSS-атак на уровне базы данных. Она не даст пользователю сохранить HTML-теги в тексте. Просто, но эффективно.

Как это работает? Функция заменяет опасные символы на их безопасные HTML-сущности:

  • &&
  • <<
  • >>

Важный нюанс: порядок замены имеет значение. Сначала меняем амперсанд, потом угловые скобки. Иначе < превратится в &lt; — полная ерунда.

Пример работы

Допустим, пользователь ввёл:

После обработки функцией получим: <script>alert('XSS')</script>

Браузер покажет это как обычный текст, а не выполнит скрипт. Работает безотказно.

Код функции

ALTER FUNCTION [dbo].[str_htmlEncode]
(
    @UnEncoded as varchar(max)
)
RETURNS varchar(max)
AS
BEGIN
  DECLARE @Encoded as varchar(500)

  -- order is important here. Replace the amp first, then the lt and gt.
  -- otherwise the < will become <
  SELECT @Encoded =
  Replace(
    Replace(
      Replace(@UnEncoded,'&','&'),
    '<', '<'),
  '>', '>')

  RETURN @Encoded
END

Кстати, я бы советовал увеличить размер переменной @Encoded с 500 до max. Исходный текст может быть длиннее — не стоит рисковать обрезанием данных.

Помните: это лишь один из слоёв защиты. Всегда комбинируйте с валидацией на фронтенде и серверной проверкой.

Насколько полезной была статья?

Что еще посмотреть по SQL Server

Как запустить SQL сценарий сразу на нескольких БД

Индексы SQL Server. Поиск дубликатов

Запрос для получения SQL всех индексов для таблиц базы данных SQL Server

Как перестроить все индексы на базе SQL Server

Как разрезать строку на части в SQL по некоторому символу

Конвертация из строки в таблицу в SQL Server

Выполнение прямого запроса к URL из SQL

SQL Server Как установить у таблицы описание (MS Description)

Как получить текущего юзера БД

Как хранить в 1 поле таблицы БД значения разных типов?

Генерация MD5 в SQL Server

Как привести телефон в нормализованный вид

Дополнительный заработок для разработчиков на T-SQL

Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML.
Falcon Space - платформа для создания сайтов с личными кабинетами
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK