Безопасность¶
Этот проект представляет собой мост для автоматизации браузера. Рассматривайте его как инфраструктуру для выполнения доверенного кода.
Граница доверия¶
Внешний сервер поддерживает stdio и Streamable HTTP. Он запускает основной компонент Playwright MCP в качестве дочернего процесса и перенаправляет вызовы инструментов. Автоматизация браузера, вывод файлов, доступ к сети и поведение при небезопасной оценке регулируются основным компонентом Playwright MCP.
Не следует открывать доступ к серверу stdio через сетевой обёртку без аутентификации. Любой клиент, способный вызывать инструменты, может управлять браузером, считывать данные страниц, доступные браузеру, и запрашивать артефакты.
По умолчанию Streamable HTTP подключается к 127.0.0.1 по протоколу HTTP для локальных клиентов. Если вы привязываете его к 0.0.0.0 или публикуете его за пределами loopback, требуйте CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN или эквивалентную аутентификацию обратного прокси, используйте прямой HTTPS с CLOAK_PLAYWRIGHT_MCP_HTTP_PROTOCOL=https и файлами TLS или завершайте TLS на границе доверенной сети, а также ограничьте доступ доверенным клиентам.
Небезопасные инструменты¶
Upstream Playwright MCP включает такие инструменты, как browser_evaluate и browser_run_code_unsafe. Они позволяют выполнять JavaScript в браузере или в контексте сервера Playwright. Подключайте этот сервер только к тем клиентам MCP, которым вы доверяете.
Настройка¶
Используйте опции на верхних уровнях для управления доступом и защиты:
PLAYWRIGHT_MCP_ALLOWED_ORIGINSPLAYWRIGHT_MCP_BLOCKED_ORIGINSPLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESSPLAYWRIGHT_MCP_SECRETS_FILE
Это защитные меры для удобства, которые не заменяют изоляцию процессов, контейнеров, сетей и файловых систем.
По возможности используйте списки разрешенных адресов для доверенных целей. Рассматривайте неограниченный доступ к файлам и файлы с секретной информацией как функции, требующие особого внимания, и не включайте их в общие профили клиентов MCP.
Режим «песочницы»¶
По умолчанию для образа Docker используется значение CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX=true, поскольку в контейнерных средах выполнения CI и MCP функция «песочницы» браузера зачастую недоступна. Это компромисс, обусловленный необходимостью обеспечения совместимости. Если ваша среда выполнения на хосте и в контейнере поддерживает песочницу Chromium, установите:
При запуске без песочницы Chromium используйте Docker или другой механизм изоляции процессов и избегайте монтирования обширных каталогов хоста.
Артефакты и секреты¶
Скриншоты, моментальные снимки, загруженные файлы, сетевые журналы, журналы консоли и трассировки могут содержать учетные данные или конфиденциальный контент страниц. Подключайте только тот каталог с артефактами, который вам нужен, очищайте его после использования и избегайте публичного распространения пакетов артефактов.
Если ваш MCP-клиент вставляет учетные данные в сеансы браузера, отдавайте предпочтение краткосрочным учетным данным, действующим только на целевом сайте. Не размещайте долгосрочные токены на скриншотах, в сетевых ответах или в постоянных профилях браузера.
Docker¶
Docker рекомендуется использовать, если вам нужна изоляция и воспроизводимые зависимости браузера. Подключите только тот каталог с артефактами, который вам нужен, и используйте --init, чтобы дочерние процессы браузера правильно очищались.
При публикации Streamable HTTP из Docker рекомендуется использовать -p 127.0.0.1:3000:3000. Публикация непосредственно на общедоступный интерфейс предоставляет любому доступному клиенту возможность автоматизации браузера, если не добавить средства аутентификации и сетевого контроля.
Образ Docker проходит сканирование с помощью Trivy в рамках непрерывной интеграции (CI) и перед публикацией релиза. Сканер проверяет уязвимости ОС и библиотек с высоким и критическим уровнем риска и, если эта функция включена, загружает результаты в формате SARIF в систему сканирования кода GitHub.
Проверки цепочки поставок¶
В репозитории используются бесплатные встроенные в GitHub средства проверки с открытым исходным кодом:
- CodeQL для статического анализа кода на JavaScript и TypeScript.
- Dependency Review для проверки изменений зависимостей в пул-реквестах.
npm audit --omit=dev --audit-level=highдля зависимостей npm, используемых во время выполнения.- OpenSSF Scorecard для отслеживания сигналов о цепочке поставок репозитория.
- zizmor для проверки безопасности GitHub Actions.
- Trivy для сканирования образов Docker на наличие уязвимостей.
Эти проверки не заменяют ручной анализ поведения средств автоматизации браузера или изменений в релизах.
Отчетность¶
Сообщайте об уязвимостях с помощью файла SECURITY.md.