Администрирование
Безопасность

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

10min

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

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

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

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

Название параметра

Значение

Важно

Commentary

expose_php

Off

Да

Скрывает информацию о версии PHP в заголовках ответа веб-сервера

display_errors

Off

Да

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

post_max_size

10MB



Ограничивает максимальный размер получаемых от клиента данных, что защищает от DOS атак.

max_execution_time

120 до 600



Максимальное время выполнения скрипта в секундах. При необходимости можно увеличить

max_input_time

120



Максимальное время чтения данных от клиента в секундах.

memory_limit

256MB до 2GB



Максимальный объем RAM, который может использовать скрипт. При необходимости можно увеличить

max_input_vars

1000



Количество параметров в POST запросе. Можно увеличить, если наблюдаются проблемы с импортом больших CSV или JSON файлов.

session.cookie_lifetime

0



При значении 0 браузер не хранит куки и очищает их при перезапуске браузера

session.use_only_cookies

On

Да

Сессия будет передавать только через куки

session.use_strict_mode

On

Да

PHP не будет принимать куки с сессией, номер который установлен пользователем, а не выдан PHP. Защищает от Cookie Fixation

session.cookie_httponly

On

Да

Запрещает доступ к кукам из JavaScript

session.cookie_secure

On

Да

Куки будут доступны только по HTTPS

session.use_trans_sid

Off

Да

Запрещает предавать номер сессии через GET параметры

session.cache_limiter

nocache



Отключает кеш

session.sid_length

100

Да

Устанавливает длину сессии. Длинный номер сессии защищает ее от перебора (максимально 256).

session.sid_bits_per_character

5

Да

Максимальная вариативность символов в номере сессии. '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

Bash


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

Bash


HTTP Strict Transport Security

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

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

Bash


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

HTTP Public Key Pinning Extension

При помощи данного расширения администратор ресурса может указать какой удостоверяющий центр может использоваться для подписания его сертификатов.

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

Bash


Здесь cert.pem — это первый в цепочке сертификат, принадлежащий удостоверяющему центру. На выходе мы получим строку в base64.

Включаем расширение и прописываем отпечаток нашего УЦ (не забудьте указать свой base64 отпечаток):

Bash


В параметре max-age указывается на сколько секунд следует кэшировать отпечаток в кэше браузера. Рекомендуется указывать не слишком большое значение, т.к. в случае смены УЦ клиенты не смогут зайти на ваш ресурс до истечения таймаута.

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

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

Название параметра

Значение

Комментарий

Секция [crypt]





secret

Не изменять вручную

Ключ серверного шифрования базы данных. Генерируется автоматически при первом запуске Пассворк.

disableClientSide

Включить при необходимости

Off — включает режим шифрование на клиенте

On — без шифрования на клиенте (значение по умолчанию)



algorithm

Рекомендуется не изменять

Можно указать алгоритм шифрования из openssl библиотеки

source



Пример config/config.ini … [crypt] source = key.ini … config/key.ini [crypt] secret = base64:….

Секция [application]





csrf

On

Включает отправку 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 пользователь сможет войти только в веб интерфейс.

Настройка базы данных MongoDB

Рекомендации по дополнительной настройке:

Обновлено 02 Oct 2024
Doc contributor
Doc contributor
Doc contributor
Doc contributor
Помогла ли вам эта страница?