Межсетевое экранирование

Проверка корректности представления Unicode


Аналогично многим другим возможностям, проверка корректности представления Unicode по умолчанию выключена. Ее следует включить, если приложение или лежащая в основе ОС принимают и понимают Unicode.

SecFilterCheckUnicodeEncoding On

Это предполагает представление в UTF-8 и проверяет следующие три типа ошибок.

  • Недостаточно байтов. UTF-8 поддерживает кодирование из двух, трех, четырех, пяти и шести байтов. ModSecurity определяет случаи, когда один или более байтов пропущены.

  • Несуществующее кодирование. Атакующие могут использовать несуществующее кодирование, чтобы попытаться обмануть Unicode декодировщики.

  • Очень длинные символы. ASCII символы непосредственно отображаются в Unicode и тем самым представлены в одном байте. Однако, большинство ASCII символов может также быть представлено двумя, тремя, четырьмя, пятью и шестью символами, тем самым обманывая декодировщик, который в этом случае может представить символ как-то еще (и таким образом атакующий может обойти проверки безопасности).



Содержание раздела