Передача пароля в зашифрованном виде в 1С-Битрикс

Когда вы делаете у себя на сайте авторизацию, то пароль, введенный в форму, передается на сервер в открытом виде. В случае перехвата траффика учетные данные могут быть похищены.

Для этих случаев в модуле Проактивная защита реализован функционал безопасной авторизации. Для того чтобы его активировать надо пойти в настройки Главного модуля и там включить опцию Передавать пароль в зашифрованном виде и сгенерировать ключ, нажав на соответствующую кнопку.

После этого авторизация реализованная стандартными битриксовыми компонентами и авторизация в админку будут передавать пароль в шифрованном виде и в случае перехвата траффика его невозможно будет узнать.

В этом всём благополучино, но есть пара нюансов, которые хотелось бы рассмотреть.

1. Функционал безопасной авторизации работает только по http протоколу. Т.е. если у вас https, а ваши параноидальные потребности требуют шифрования пароля - то тут облом.

2. Если у вас не стандартный компонент авторизации, а просто своя какая-то кастомная форма, то конечно же так просто у вас это всё дело не подключится.

Для того чтобы решить обе проблемы в код формы (например в файле result_modifier.php) надо добавить следующее:

$sec = new CRsaSecurity();
if ($arKeys = $sec->LoadKeys()) {
    $sec->SetKeys($arKeys);
    $sec->AddToForm('имя_формы', array('имя_поля_с_паролем'));
}
И тогда значение из соответствующего поля будет передаваться зашифрованным независимо от того по какому протоколу вы работаете.

P.S. обратите внимание что для полноценной работы необходимо чтобы в вашем шаблоне были подключены битриксовые системные скрипты. Для этого достаточно вызывать их либо так:

$APPLICATION->ShowHead();
либо сяк:
$APPLICATION->ShowHeadStrings();
$APPLICATION->ShowHeadScripts();

Не пренебрегайте безопасностью проекта и пользователей.

{{ message }}

{{ 'Comments are closed.' | trans }}