Безпека¶
Цей проєкт є мостом для автоматизації роботи браузера. Розглядайте його як інфраструктуру для виконання надійного коду.
Межа довіри¶
Зовнішній сервер підтримує 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 для перевірки змін у залежностях у pull-запитах.
npm audit --omit=dev --audit-level=highдля залежностей npm, що використовуються під час виконання.- OpenSSF Scorecard для аналізу сигналів ланцюга постачання репозиторіїв.
- zizmor для перевірки коду на безпеку в GitHub Actions.
- Trivy для сканування образів Docker на наявність вразливостей.
Ці перевірки не замінюють ручний аналіз поведінки автоматизованих процесів у браузері або змін у версіях.
Звітність¶
Повідомляйте про вразливості за допомогою SECURITY.md.