Битрикс. Монитор качества: Проверена безопасность кода (статический анализ уязвимостей)

Битрикс. Монитор качества: Проверена безопасность кода (статический анализ уязвимостей)
Блог
19.02.2018 08:10:00
Проходя монитор качества Вы не прошли тест "Проверена безопасность кода (статический анализ уязвимостей)", найдено столько потенциальных проблем.


Смотрим какие файлы с какими угрозами нашла система. Для этого нажимаем на кнопку "Подробный отчет" и в открывшемся окне, изучаем список уязвимостей.



Здесь указано в каком файле на какой строчке есть уязвимость. А справа кнопка вопроса, нажимая на которую Вам система подробно подскажет, как ее исправить.

В моем случае - это Межсайтовый скриптинг (XSS). В пояснении указано, что уязвимость возникает тогда, когда данные, принятые от пользователя, выводятся в браузер без надлежащей фильтрации. Уязвимость может быть использована для изменения вида HTML страниц уязвимого сайта в контексте браузера целевого пользователя, похищения COOKIE данных браузера целевого пользователя, с последующим внедрением в его сессию, под его учетной записью.Как защищаться, Использовать htmlspecialcharsbx

Что такое htmlspecialcharsbx.

В PHP уже есть htmlspecialchars которая предназначена для преобразования спец символов в html-сущности. С выходом PHP версии 5.4 в этой функции поменялось значение третьего параметра по умолчанию. Третий параметр - это кодировка строки, которая по умолчанию стала кодировкой UTF-8.

Но в битрикс, если передавать строку с нелатинскими символами в иной кодировке, не передавая параметр кодировки, то функция возвращала пустую строку. 

Поэтому разработчики добавили новую функцию под названием htmlspecialcharsbx в главный модуль начиная с версии с 12-й версии битрикса. Таким образом, если константа BX_UTF была определена перед обращением к функции, то будет использоваться кодировка UTF-8 в ином случае ISO-8859-1.

Как проверить определена константа BX_UTF?

Заходим в файл dbconn.php по пути <Ваш_сайт>/bitrix/php_interface/


Ее наличие показывает, что сайт работает в кодировке UTF-8.

Как исправить такую уязвимость.

В отчете написано, где она находится.


Открываем файлы из отчета и в каждом находим строку с уязвимостью.

У меня строка 38, а в 440 уже идет не защищенный вывод. Можно прописать функцию htmlspecialcharsbx или там или там.

Я укажу на 38 строке.



И так в остальных файлах отчета. После снова запускаю данный тест на проверку уязвимостей.



Уязвимостей больше нет.

Что я предлагаю

Создам для Вас -

  • Уникальный адаптивный дизайн
  • Заключение договора

Заполните форму