Этот модуль мы придумали и сделали только после того, как несколько относительно крупных проектов были атакованы, используя уязвимости не в наших компонентах и модулях, а в их модифицированных версиях, которые были написаны не нашими разработчиками.
Дело в том, что, проектируя архитектуру, я всегда придерживаюсь принципа - любой программист-новичок должен мочь легко выполнить типичные для разработки сайта операции: убрать/добавить ссылку, сменить расположение элементов, верстку и т.п.. Для этого мы когда-то в четвертой версии разработали технологию Компоненты 2.0, которая успешно живет и по сей день. Вообще, про идеологию Компонент 2.0 я напишу в другой раз, т.к. далеко не все понимают ее преимущества, ограничения и правила эксплуатации .
Так вот, я отвлекся, одна из наших целей это обезопасить неопытных программистов, которые разрабатывают сайты, от ошибок, в том числе от ошибок безопасности, поэтому все API функции мы защищаем от различных уязвимостей типа SQL инъекций, а переменные в шаблонах от XSS уязвимостей, делая все параметры безопасными в коде компонентов и API, т.е. мы изначально позволяем не думать о такой "второстепенной" проблеме как безопасность для удобства программирования и "красоты" кода - все параметры в шаблоне уже безопасны и готовы к употреблению (выводу в HTML).
Но, как показывает практика, такая перестраховка не всегда спасает и некоторые разработчики все-равно кое-где оставляют код типа <?=$_REQUEST["var"]?>, против которого мы никак не могли противостоять до выхода модуля Проактивной защиты.
Так как и когда использовать этот модуль?
Модуль состоит из нескольких видов защит:
1. Проактивный фильтр - фильтрует все входящие параметры на предмет потенциально опасных данных, используемых при типичных атак.
2. Защита сессий - позволяет избежать атак, связанных с воровством идентификаторов сессий.
3. Антифишинг - блокирует внешние переходы через сайт, если они не были сделаны с самого сайта.
4. Одноразовые пароли - защищает от постороннего входа на сайт в случае утери или перехвата пароля.
5.6... Журнал вторжений, блокировка активности, защита котрольной панели...
Подробно об этих функциях в своем блоге уже писал Сергей Рыжиков:
Лично про наши сайты я могу сказать, что у нас, например, включен Проактивный фильтр, но на форумах часто размещают примеры PHP или javascript кода (а в техподдержке в обращениях постоянно!), поэтому мы сразу отключили его для этих страниц. Вообще "Проактивный фильтр" нужен для случаев, когда вы неуверены в качестве кода который принимает и, в основном, выводит данные, принятые от пользователей. Но все что мы (Битрикс) производим, проходит многократную проверку у наших штатных "хакеров", поэтому наш код и код, написанный грамотными специалистами, был и будет безопасными даже без этого модуля.
Вообще, мое мнения, что такие универсальные методы защиты ослабляют внутреннюю, подсознательную защиту пользователей/клиентов. Лично по своему опыту могу сказать, что наши сотрудники, которые пользуются антивирусами, фаерволами и т.п. гораздо чаще заражаются всякими вирусами и шпионами, чем те, которые, понимая всю ответственность за каждый клик, скачивание, обновление, работают без лишних тормозящих компьютер программ. Все дело в культуре, будь то культура программирования или культура использования. Никакая программа или модуль не защищает вас на 100%. Нужно понимать от чего тебя может спасти этот модуль или программа, а от чего нет... а где они тебе будут мешать... Вера в то, что кто-то за тебя будет думать и оберегать тебя только вредит, так даже в жизни не бывает - надел бронежилет и в криминальный район, а преступник с битой - бронежилет не помогает Вообще это, на мой взгляд, большая проблема нынешнего Интернета и его "новеньких" пользователей. Я как-то наблюдал как сестра жены ищет себе реферат с моего ноутбука - я реально поседел, глядя как она уверенно и безрассудно кликает во все что "кликается".
Все чаще "ломают" не через сайт или ПО на сервере, а через, так называемый, социальный фактор: телефоны, письма от типа друзей, флэшки, воруют аськи, в офисах слабая защита локальных сетей (вообще никакая). Хочешь спать спокойно: выключи все из розетки или используй грамотных администраторов, обучи сотрудников, сделай сайт у квалифицированных разработчиков, в крайнем случае, включи модуль "Проактивной защиты"
В любом случае, я отвлекся, модуль получился мощный, благодаря ему мы уже нашли потенциально уязвимые места в продукте и исправили их, сделав его более надежным и неуязвимым.
Дальше рассказ о новом функционале "Персональный рабочий стол".
Не по теме, но. Текст не удобно читать. Глаза со строчки на строчку прыгают...
чтобы конструкция
<?=$_REQUEST["var"]?>
была опасной?
Внизу вылезет фрэйм с сообщением об ошибке не совпадения паролей (т.к. эта строка закомментирована).
Вообще говоря, в таком случае я смогу сделать почти тоже самое что и вы со своего браузера (ну плюс к тому же похищать куки, перехватывать пароли, и т.п.).
Выражение <?=$_REQUEST["var"]?> - это как широко распахнутые ворота вашего сайта для хакеров