Перейти к основному содержимому
Это документация для Пассворка версии 6.0, которая больше не поддерживается.

Актуальная документация находится на странице последней версии 7.0.
Версия: 6.0

Настройка безопасности

Общая информация

В этом документе собраны все параметры и рекомендации, которые могут влиять на безопасность различных компонентов инфраструктуры Пассворка (веб-сервер, PHP, база данных). Выставление максимальных значений требуется не всегда и может привести к неудобству использования Пассворка конечными пользователями, а также отсутствию поддержки или совместимости со старыми ОС и компонентами.

осторожно

Изменяйте значения по рекомендациям технической поддержки Пассворк.

Настройки PHP (php.ini)

Название параметраЗначениеВажноCommentary
expose_phpOffДаСкрывает информацию о версии PHP в заголовках ответа веб-сервера
display_errorsOffДаОтключает вывод информации об ошибках PHP. Всегда должно быть Off, так как все ошибки пишутся в лог-файлы.
post_max_size10MBОграничивает максимальный размер получаемых от клиента данных, что защищает от DOS атак.
max_execution_time120 до 600Максимальное время выполнения скрипта в секундах. При необходимости можно увеличить
max_input_time120Максимальное время чтения данных от клиента в секундах.
memory_limit256MB до 2GBМаксимальный объем RAM, который может использовать скрипт. При необходимости можно увеличить
max_input_vars1000Количество параметров в POST запросе. Можно увеличить, если наблюдаются проблемы с импортом больших CSV или JSON файлов.
session.cookie_lifetime0При значении 0 браузер не хранит куки и очищает их при перезапуске браузера
session.use_only_cookiesOnДаСессия будет передавать только через куки
session.use_strict_modeOnДаPHP не будет принимать куки с сессией, номер который установлен пользователем, а не выдан PHP. Защищает от Cookie Fixation
session.cookie_httponlyOnДаЗапрещает доступ к кукам из JavaScript
session.cookie_secureOnДаКуки будут доступны только по HTTPS
session.use_trans_sidOffДаЗапрещает предавать номер сессии через GET параметры
session.cache_limiternocacheОтключает кеш
session.sid_length100ДаУстанавливает длину сессии. Длинный номер сессии защищает ее от перебора (максимально 256).
session.sid_bits_per_character5ДаМаксимальная вариативность символов в номере сессии. '4' (0-9, a-f), '5' (0-9, a-v), '6' (0-9, a-z, A-Z, "-", ","). Значение 6 не поддерживается
session.cookie_domainЕсли используется одно доменное имя, то его можно указать в этом параметре

Веб-сервер

Настройка SSL

💡 Для продакшен среды требуется обязательная настройка работы по HTTPS протоколу.

Оставить поддержку только TLS 1.2 и 1.3

ssl_protocols TLSv1.2 TLSv1.3;

Рекомендованный набор крипто-алгоритмов (не будут поддерживаться старые ОС и браузеры, например IE6/WinXP)

ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;

HTTP Strict Transport Security

Расширение HTTP Strict Transport Security предназначено для сохранения настройки в браузере «этот сайт работает только посредством HTTPS».

Атаковать такой ресурс при помощи «человек посередине» (MITM) уже не получится, т.к. в случае подмены сертификата браузер сразу закроет соединение и не даст возможности продолжить работу с поддельным сертификатом.

add_header Strict-Transport-Security max-age=31536000;

В параметре max-age указывается на сколько секунд следует кэшировать заголовок HSTS в браузере. Рекомендуется указывать 31536000 (1 год) и выше.

Настройка Пассворка

Настройка параметров безопасности config.ini

Название параметраЗначениеКомментарий
Секция [crypt]
secretНе изменять вручнуюКлюч серверного шифрования базы данных. Генерируется автоматически при первом запуске Пассворк.
disableClientSideВключить при необходимостиOff — включает режим шифрование на клиенте
On — без шифрования на клиенте (значение по умолчанию)
algorithmРекомендуется не изменятьМожно указать алгоритм шифрования из openssl библиотеки
sourceПример:
config/config.ini

[crypt]
source = key.ini

config/key.ini
[crypt]
secret = base64:….
Секция [application]
csrfOnВключает отправку CSRF токен при каждом AJAX запросе
disableEncodeResponseНе указыватьПо умолчанию сервер кодирует все клиентские данные в base64 кодировке. Значение On отключается этот режим (только для отладки).
Секция [mongo]
sourceПозволяет вынести строку подключения в отдельный файл
config/config.ini

[mongo]
source = mongo.ini

config/mongo.ini
[mongo]
connectionString = mongodb://db:27017
dbname = production
Без секции
devmodeНе указыватьВключает режим отладки

Системные параметры Пассворка

Название параметраЗначениеКомментарий
Дополнительная защита и подпись кукВключитьКуки с PHP сессией подписываются с помощью энтропии и данных из заголовка HTTP запроса, в том числе IP пользователя. Это повышает защиту от перебора номера сессии, а так же от переноса (кражи) кук между браузерами. Каждый пользователь автоматически будет терять сессию при смене IP адреса.
Обязательная двухфакторная аутентификацияВключитьВсе пользователи должны будут настроить 2ФА перед началом работы
Время жизни токена CSRF после последней активности в часах24
Ротация API ключейВключитьВсе клиентские приложения будут автоматически терять сессию и требовать повторного входа в систему.
Самостоятельное восстановление пароля авторизацииЗапрещеноСбросить забытый пользовательский пароль авторизации сможет только администратор Пассворк
Автоматический выход из системы при неактивностиПассворк выполнит автоматический выход пользователя, если от него не приходят запросы
Использование APIПозволяет отключить использование API. По API работают все клиентские приложения (мобильные приложения, браузерные расширения). С отключенным API пользователь сможет войти только в веб интерфейс.