Модель безопасности
Localzet Server предоставляет транспорт и protocol parser. Аутентификация, авторизация бизнес-операций, CSRF policy и rate limiting остаются ответственностью приложения и внешнего edge.
Что проверяет HTTP parser
В текущей реализации HTTP parser:
- требует один корректный
Hostдля HTTP/1.1 и отклоняет дубли; - отклоняет конфликтующий/повторный
Content-Length, сочетание сTransfer-Encodingи неподдерживаемые transfer codings; - проверяет request line и принимает extension methods как HTTP token;
- ограничивает размер/число заголовков;
- проверяет
Expect: 100-continueи обрабатывает chunked framing; - игнорирует forwarded client IP, если удалённый peer не входит в
Request::$trustedProxies.
Эти проверки защищают границы парсера, но не валидируют параметры, права пользователя или содержимое приложения.
Доверенные proxy
Не добавляйте * в Request::$trustedProxies, если перед сервисом могут подключаться недоверенные клиенты. Укажите точные IP/CIDR балансировщиков, ограничьте listener сетевым уровнем и только тогда используйте forwarded headers.
use localzet\Server\Protocols\Http\Request;
Request::$trustedProxies = ['10.20.0.0/16', '127.0.0.1'];
Проверяйте, что edge перезаписывает входящие Forwarded/X-Forwarded-*, а не доверяет произвольным значениям клиента.
Worker и привилегии
На Unix задайте непривилегированного пользователя/группу после выбора listener-ов. Дайте процессу только нужные права на сертификаты, конфигурацию, логи и session storage. Не запускайте управляющий entry file от внешнего HTTP handler-а.
В worker-ах PHP-память не разделяется автоматически. Для совместного состояния используйте специально настроенное внешнее хранилище с аутентификацией и сетевыми ACL.
TLS, сессии и gateway
TLS можно завершать на доверенном edge либо на listener-е с PHP stream context; проверьте сертификат, ключ, протоколы и hostname на целевом runtime. По умолчанию session cookie не гарантирует production-политику: задайте secure, httpOnly, sameSite, lifetime и domain по модели приложения.
Gateway допускает маршрутизацию к upstream-ам из конфигурации. Держите этот список статическим или административно контролируемым, чтобы не создать SSRF-путь. Сам gateway не заменяет auth, ACL или DDoS protection.
Для приватного сообщения об уязвимости используйте security policy репозитория.

