Skip to content

Защитить управляющие API агента (auth + безопасный bind) #30

@anry88

Description

@anry88

Проблема:
Агент может быть поднят на внешнем интерфейсе и при этом эндпоинты управления тестом (/run, /stop, /debug/http) не требуют аутентификации. Это позволяет любому, кто видит порт, запускать/останавливать тесты и дергать debug-запросы.

Конкретные места в коде:

agent.json (line 2)
server.go (line 69)
server.go (line 169)
server.go (line 204)
server.go (line 250)
Решение:

Ввести auth middleware (например, Bearer token или X-Perfolizer-Admin-Token) для /run, /stop, /debug/http, /admin/restart.
Разделить роли: минимум operator (run/stop/debug) и admin (restart).
Сделать безопасный default-bind (127.0.0.1) для примеров конфигов и документации.
Добавить явный флаг allow_unauthenticated_local только для локальной разработки.
Критерии приемки:

Без токена запросы к управляющим endpoint возвращают 401/403.
С корректным токеном сценарии run/stop/debug/restart работают.
Из коробки агент не публикуется наружу без явного решения пользователя.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions