360 Secure SkillHub
360 安全技能中心

Browser Auth

启动本地 Node 认证服务器与浏览器隧道,把含 token 的链接交给用户手动完成验证码/2FA 登录,用户点击 DONE 后将 cookie/localStorage 保存为 session.json,并用 verify_session.js 校验会话有效性,任务结束后需删除会话文件。

lksrz
lksrz
热度 47.24
最近更新 2026-05-18 12:03:50
分类:自动化依赖:代码执行 / 联网浏览搜索 / 读写文件应用场景:自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add browser-auth
Metadata
name
browser-auth
description
Start a secure remote browser tunnel for manual user authentication (solving Captchas, 2FA, logins) and capture session data. Built for AI Commander.
metadata
{"author":"Skippy & Lucas (AI Commander)","homepage":"https://aicommander.dev","env":{"AUTH_HOST":{"description":"IP to bind the server to (default: 127.0.0.1). Use 0.0.0.0 only with a secure tunnel.","default":"127.0.0.1"},"AUTH_TOKEN":{"description":"Secret token for accessing the tunnel (default: random hex string)."},"BROWSER_PROXY":{"description":"SOCKS5/HTTP proxy for the browser (e.g. socks5://127.0.0.1:40000)."}},"openclaw":{"requires":{"bins":["node","chromium-browser"]},"install":[{"id":"npm-deps","kind":"exec","command":"npm install express socket.io playwright-core","label":"Install Node.js dependencies"}]}}

Browser Auth

This skill allows the agent to request the user to perform a manual login on a website and then capture the session cookies/localStorage for further automated work.

🚨 Security & Risk Mitigation

We take security seriously. Below is how we address common concerns related to remote browser control:

1. Remote Code Execution (RCE) Protection

  • Always Sandboxed: Chromium runs with the system sandbox ENABLED. There is no option to disable it in the code. This prevents a malicious website from escaping the browser and executing code on your host.
  • Isolation Recommendation: We recommend running this skill within an isolated container (Docker) or a dedicated VM for an extra layer of protection.

2. Token Leakage (Referrer Protection)

  • Referrer Policy: The server enforces Referrer-Policy: no-referrer. This ensures that even if you navigate to an untrusted site, your secret AUTH_TOKEN is NEVER sent in the HTTP Referer header.
  • URL Cleansing: The interface automatically clears the token parameter from your browser's address bar immediately after the page loads.

3. Data Sensitivity

  • Session Artifacts: The session.json file contains active login cookies. Treat it with the same level of security as a password.
  • Mandatory Cleanup: Always delete the session file immediately after the agent finishes its task.
  • No Persistence: This skill does not store credentials long-term or exfiltrate them to external servers.

4. Network Exposure

  • Default Local Bind: By default, the server binds to 127.0.0.1.
  • Secure Access: If you need remote access, do not bind to 0.0.0.0 directly. Instead, use a secure tunnel like Tailscale, Cloudflare Tunnel (cloudflared), or an SSH tunnel.

When to Use

  • When a website requires manual interaction to solve Captcha or 2FA.
  • When bot detection prevents automated login.
  • When you want to authorize an agent without sharing your password.

Workflow

  1. Request Auth: Start the tunnel using scripts/auth_server.js.
  2. Provide Link: Share the link (including token) with the intended user over a secure channel.
  3. Wait for Session: The user logs in and clicks DONE in the web UI.
  4. Verify: Use scripts/verify_session.js to confirm the session is valid.
  5. Cleanup: Delete the session file once the task is complete.

Tools

Start Auth Server

AUTH_HOST=127.0.0.1 AUTH_TOKEN=mysecret node scripts/auth_server.js <port> <session_file>

Verify Session

node scripts/verify_session.js <session_file> <target_url> <expected_text>

Runtime Requirements

Requires: express, socket.io, playwright-core, and a system chromium-browser.