Auto Scraping to CSV

WarnAudited by ClawScan on May 12, 2026.

Overview

This looks like a real web-scraping skill, but its local browser bridge is too open and loads unpinned remote code, so it needs review before use.

Only run this if you are comfortable operating a local browser-control server. Avoid sensitive logged-in sites, stop the bridge after use, and prefer a version that pins the CDN dependency, restricts CORS, requires a local auth token, and removes or tightly gates arbitrary JavaScript execution.

Findings (3)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

While the bridge is running, another process or web origin that can reach the port may be able to make the browser visit pages and receive page text/state through the bridge.

Why it was flagged

The bridge accepts browser-control requests and returns DOM state over HTTP with wildcard CORS, and the shown routes do not include authentication, origin checks, or URL restrictions.

Skill content
'Access-Control-Allow-Origin': '*', ... const session = await createSession({ url: body.url, ... }); ... const state = await getState(id); send(200, state);
Recommendation

Require a random local auth token, restrict CORS to the intended client, bind explicitly to loopback, validate allowed URL schemes/hosts, and stop the bridge immediately after use.

What this means

A caller with access to the bridge can run arbitrary JavaScript in the automated page, which can bypass safer scraping workflows and alter or extract page content within that browser context.

Why it was flagged

A caller-selected action can pass a caller-supplied script into the browser controller, creating a raw JavaScript execution escape hatch beyond ordinary text-DOM scraping.

Skill content
const result = await act(id, body.action, body.params || {}); ... case 'executeJavascript': return await ctrl.executeJavascript(params.script);
Recommendation

Remove the executeJavascript action by default, or gate it behind explicit user approval, per-request authentication, and strong allowlisting.

What this means

A future or compromised CDN/package version could change what code runs in the browser without the user reinstalling or reviewing the skill.

Why it was flagged

The bridge downloads and injects an unpinned '@latest' CDN script at runtime, so the code executed in target pages can change after review.

Skill content
const CDN_URL = 'https://cdn.jsdelivr.net/npm/page-agent@latest/dist/iife/page-agent.demo.js'; ... await page.addScriptTag({ url: CDN_URL });
Recommendation

Pin page-agent to a specific reviewed version, include integrity checking or vendor the script, and declare the runtime dependency clearly.