- Анализ текста сообщений с помощью различных алгоритмов (Байесовская фильтрация спама и прочее)
- Контентная фильтрация. Включает в себя поиск в тексте признаков спама (ссылки, предложение товара, ключевые слова)
- На основе статистической информация о том, как другие пользователи почтового сервера отреагировали на подобное сообщение (отметили ли его как «СПАМ»)
- Получая информацию от внешних сервисов о степени доверия к тому или иному серверу-отправителю.
Например, в спам-фильтре SpamAssassin предусмотрен настраиваемое пороговое значение баллов, при превышении которого письмо классифицируется как спам. Обычно порог таков, что для присвоения категории спама письмо должно соответствовать нескольким критериям — срабатывания только одного теста недостаточно для превышения порога. Принципы работы других спам-фильтров в целом аналогичны.
Поскольку ни один из методов фильтрации спама сам по себе не гарантирует как полной защиты от нежелательных сообщений, так и от ложных срабатываний, на практике обычно применяется комбинация нескольких методов. Так, при настройке общего порога и количества баллов, присваиваемых конкретным тестом, регулируется степень «подозрительности» фильтра при обработке того или иного типа сообщений.
Принципы фильтрации SQL-инъекций аналогичны. При фильтрации на уровне DAF чаще всего можно видеть синтаксически верный SQL. Поэтому необходимо по косвенным признакам определить вероятность того, что запрос может быть зловредным. При этом DataArmor Database Firewall может использовать следующую информацию:
- Частота поступления некорректных SQL-запросов с этого хоста или от этого клиента
- Имеются ли в запросе константные условия, постоянно возвращающие TRUE или FALSE
- Имеются ли в тексте запроса комментарии и содержат ли эти комментарии части SQL запроса
- Наличие OR, UNION блоков
- Другие условия
Напоследок стоит сказать, что полную защиту от SQL-инъекций даёт только качественный и хорошо протестированный код сервера приложений.