Сетевые границы и защита
Listener, codec и обработчик отвечают за разные ограничения. Наличие TLS не заменяет проверку доступа, а HTTP-парсер — проверку прикладных полей.
Listener
Заголовок раздела «Listener»Привязывайте внутренние сервисы к loopback/private interface. Для внешних HTTP-сервисов настройте reverse proxy, лимиты тела и времени запроса. TLS stream context должен содержать сертификат/ключ сервера, а исходящие подключения — проверять сертификат и имя peer; не отключайте verify_peer для устранения ошибки доверия.
Сообщения
Заголовок раздела «Сообщения»Ограничьте maxPackageSize/maxSendBufferSize и frame/idle/TLS-handshake timeout. Проверяйте типы и размеры после decode. Не десериализуйте объекты из сетевого ввода через unrestricted unserialize. В file response выбирайте путь из разрешённого хранилища после авторизации.
Request::trustedProxies задаётся только для доверенных proxy. Host и forwarding headers не являются доверенными сами по себе. Для cookie-сессий настройте Secure/HttpOnly/SameSite, CSRF и ротацию ID при входе. Ошибки сохранения сессии обрабатывайте до успешного ответа.
Эксплуатация
Заголовок раздела «Эксплуатация»Запускайте worker под отдельным пользователем; секреты и загружаемые файлы не храните в public root. В логах фиксируйте request/connection ID и причину ошибки, исключая токены и cookie. Ограничивайте попытки входа и число соединений на внешней границе.