Перайсці да зместа

Бяспека

Гэты праект — масток для аўтаматызацыі браўзера. Разглядайце яго як інфраструктуру для выканання даверанага кода.

Мэжа даверу

Знешні сервер падтрымлівае stdio і Streamable HTTP. Ён запускае upstream Playwright MCP у якасці даччынага працэсу і перадае выклікі інструментаў. Аўтаматызацыя браўзера, вывад файлаў, сеткавы доступ і паводзіны пры небяспечнай ацэнцы рэгулююцца upstream 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 на даверным краі сеткі і абмяжоўвайце доступ да даверных кліентаў.

Небяспечныя інструменты

У рэпазіторый Playwright MCP уваходзяць такія інструменты, як browser_evaluate і browser_run_code_unsafe. Яны могуць выконваць JavaScript у кантэксце браўзера або сервера Playwright. Злучайце гэты сервер з кліентамі MCP, якім вы давяраеце.

Канфігурацыя

Выкарыстоўвайце апстрым-опцыі для кантролю доступу і ахоўных механізмаў:

  • PLAYWRIGHT_MCP_ALLOWED_ORIGINS
  • PLAYWRIGHT_MCP_BLOCKED_ORIGINS
  • PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS
  • PLAYWRIGHT_MCP_SECRETS_FILE

Гэта дапаможныя агароджы, а не замена ізаляцыі працэсаў, кантэйнераў, сетак і файлавых сістэм.

Выкарыстоўвайце спісы дазволаў для даверлівых мэт, калі гэта магчыма. Разглядайце неабмежаваны доступ да файлаў і файлы са скрытымі данымі як адчувальныя магчымасці і не ўключайце іх у агульныя профілі кліентаў MCP.

Рэжым пясочніцы

Па змаўчанні Docker-абраз выкарыстоўвае CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX=true, таму што ізаляцыя ў браўзеры часта недаступная ў кантэйрызаваных асяроддзях CI і MCP. Гэта кампраміс з пункту гледжання сумяшчальнасці. Калі ваш хост і асяроддзе запуску кантэйнераў падтрымліваюць ізаляцыю Chromium, усталюйце:

CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX=false

Пры запуску без песочніцы Chromium выкарыстоўвайце Docker або іншую мяжу ізаляцыі працэсаў і пазбягайце мантавання шырокіх каталогаў хоста.

Артэфакты і таямніцы

Скрыншоты, здымкі экрана, спампоўкі, сеткавыя логі, логі кансолі і трэйсы могуць утрымліваць уліковыя даныя або змесціва прыватных старонак. Маўнтайце толькі неабходны каталог артыфактаў, ачышчайце яго пасля выкарыстання і пазбягайце публічнага абмену пакетамі артыфактаў.

Калі ваш кліент MCP уводзіць убраныя даныя ў сесіі браўзера, аддавайце перавагу кароткатэрміновым убраным даным, абмежаваным мэтавым сайтам. Не захоўвайце доўгатэрміновыя токены на скрыншотах, у сеткавых адказах або ў пастаянных профілях браўзера.

Докер

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.