1. Изменение адреса бекенда
По умолчанию используется адрес /webasyst/
. Для его изменения необходимо добавить следующую строку в файл wa-config/config.php
:
'backend_url' => 'admin', // в этом случае бекенд будет открываться по адресу /admin/
Фрагмент 'admin'
в приведённом выше примере можно заменить на любую другую строку.
URL входа в бекенд можно сделать динамическим, например:
'backend_url' => 'admin'.date('d'),
Вызов PHP-функции date('d')
возвращает число месяца; например, 8 июня эта функция вернёт 08. Таким образом, для доступа в бекенд именно в этот день необходимо будет использовать адрес /admin08/
.
2. Изменение функции генерации хеша паролей пользователей
Фреймворк не хранит пароли пользователей в открытом виде — хранится только хеш пароля. Для совместимости с другими системами и прежними версиями скриптов WebAsyst по умолчанию в качестве функции хеша используется функция md5($password)
.
Современные графические процессоры позволяют довольно быстро перебирать пароли, зашифрованные с использованием алгоритма md5. Это значит, что в случае утечки хешей паролей ваших пользователей многие пароли могут быть быстро расшифрованы.
Начиная с версии фреймворка 1.0.8 появилась возможность задать свою функцию формирования хеша пароля. Для этого нужно в конце файла wa-config/SystemConfig.class.php
добавить объявление функции wa_password_hash()
, например:
function wa_password_hash($password) { return md5(sha1("S!aL:T1%(#".$password)."_s+A=lT,2?*"); }
Строки S!aL:T1%
и _s+A=lT,2?*
в этом примере называют «солью». При редактировании функции задайте ваши собственные значения этим строкам. Добавление «соли» сделает хеши более устойчивыми к расшифровке (брутфорсу).
Важно: После смены функции хеша вам нужно будет установить новые пароли для пользователей: каждому пользователю бекенда нужно будет пройти стандартную процедуру восстановлением пароля («забыли пароль?»). Так что лучше всего обновленную функцию задавать тогда, когда в вашей системе еще мало пользователей.
Рекомендуется сохранить код функции wa_password_hash()
в надёжном месте на случай, если вы потеряете доступ к коду, и вам нужно будет перенести базу данных на другой сервер.