Любой сайт, вне зависимости от того, на какой CMS он был создан так или иначе имеет уязвимости в своей безопасности. Битрикс — не исключение.
Абсолютно безопасных CMS не бывает, хотя приближенные к идеалу существуют, взять хотя бы Битрикс. Но дело в том, что уязвимости Битрикс почти отсутствуют только в том случае, если сайт создан на ее основе “из коробки”. Совершенно иная ситуация возникает в случае, если речь идет о конечном ресурсе, основывающемся на 1С-Битрикс. К тому же, можно смело заявить, что, чем дольше эксплуатируется сайт, тем больше возникает разнообразных уязвимостей, несущих за собой большие угрозы.
Основываясь на статистике обеспечения безопасности ресурсов, можно сказать, что больше половины всех ресурсов на CMS Битрикс, имеющих личные кабинеты пользователей, не защищены от уязвимости в виде возможности эксплуатации хранимых XSS атак. Поэтому следует внимательно ознакомиться с примерами уязвимостей, их причинами и способами избавления, для того, чтобы обеспечить надежную защиту 1С-Битрикс.
Уязвимости в коде ресурса, дающие возможность хакерам успешно использовать XSS-атаки, вызваны, в первую очередь, недостаточно надежной фильтрацией информации, связанной с авторизацией и регистрацией личных аккаунтов клиентов сайта, которая передается в БД.
Возможные уязвимости
При сохранении разработчиком ресурса файлов, к примеру, для авторизации пользователя сайта, эти файлы не проходят полную фильтрацию, и тэги сохраняются. Можно передать эту строку вместо имени в поле для его ввода в личном кабинете пользователя:
Update, как на примере ниже:
$USER->Update($USER->GetID(),array( 'NAME' => $_POST['name'], ));
В такой ситуации код не сканируется и запоминается в исходном виде, а в результате получим вот что:
Очевидно, что данная ситуация является отличным примером уязвимости в безопасности сайта. Обычно при подобной атаке внедряется JavaScript код, но в данной ситуации был использован HTML, что тоже может успешно применяться хакерами. Конкретно в Битрикс чаще используют именно HTML из-за блокировки фильтрами JavaScript кода. А вот HTML-код, в большинстве своем, не будет остановлен фильтрами 1С-Битрикс. Однако, использовать JavaScript-код также иногда получается, но для этого необходимым условием является отключение фильтров.
Если же хакеру удалось внедрить вредоносный код, то последствия, скорее всего, будут очень плачевными для владельца сайта. Причем практически без разницы, каким был этот код – HTML или JS. Реальная атака может происходить намного менее очевидно, чем в разобранном примере, и может быть обнаружена достаточно поздно, чтобы успеть нанести существенный вред.
Несмотря на большое количество уязвимостей ресурсов на платформе 1С-Битрикс, надежный хостинг для этой CMS всегда дает преимущество в обеспечении безопасности и надежной работы сайтов.
Защита от XSS атак
Несмотря на большую угрозу, которую несут эти атаки, защититься от них не так сложно, как кажется, главное — осуществить основные защитные действия. Важнейшим из них является фильтрация всех получаемых и отдаваемых файлов по способу установки экранов для символов и преобразования специальных символов в HTML-сущности. Для php это осуществляется с применением функций htmlspecialchars(), htmlentities(), strip_tags(), например:
$name = strip_tags($_POST['name']); $name = htmlentities($_POST['name'], ENT_QUOTES, "UTF-8"); $name = htmlspecialchars($_POST['name'], ENT_QUOTES);
При этом обязательно должна быть чётко указана кодировка страниц сайта.
Защищаться от XSS-атак можно довольно большим количеством методов. Можно просто запретить передавать в файлах кавычки и скобки, занеся их в черный список. Осуществляется эта процедура в настройках сервера. Такой метод, конечно, хорош, но он подходит не каждому ресурсу. В проведении такой процедуры очень важно проявить особую внимательность, так как при подобной фильтрации могут быть заблокированы легальные запросы.
Для Apache настройку можно проделать через .htaccess, внеся в него следующие строки:
RewriteEngine on RewriteCond %{HTTP_USER_AGENT} (<|>|"|%3C|%3E|%22) [NC,OR] RewriteRule ^{правило}
Итог
Подобные описанным выше уязвимости в Битрикс, и атаки, основанные на этих уязвимостях являются наиболее распространенными и часто применяемыми для данной CMS. Как уже было сказано выше, примерно каждый второй сайт подвержен подобным XSS-атакам и число уязвимых сайтов не становится меньше, даже с учетом тех мер безопасности, которые предпринимает компания Битрикс. Поэтому очень важно в данной ситуации надеяться только на себя и самостоятельно обеспечивать безопасность своих сайтов на CMS Битрикс.