Works with the AI Agents you already use
Browser & WebView XSS Audit
Find and fix client-side XSS: trace every untrusted source through DOM, URL, template and WebView-bridge sinks to prioritized, paste-ready fixes.
Free
Browser & WebView XSS Audit
Example session with this skill installed
We're about to ship v2 of our customer support portal — a React SPA plus an Ionic WebView for the mobile app. Can you run a full XSS exposure audit before release? The risky areas are the chat widget that renders agent messages with dangerouslySetInnerHTML, the ticket comment view in TicketView.vue, the postMessage bridge in webview/bridge.ts, and the login redirect that honors a ?next= query param. Trace every untrusted source to its sink, tell me which findings are confirmed versus candidates, rank them by blast radius, and give me concrete fixes using allowlist-based sanitization for each affected file.
- Read your context and instructions
- Compiled the browser & webview
Summary
Audited 14 rendering and navigation surfaces in the support portal SPA plus its Ionic WebView shell: 6 findings, 2 high-risk on authenticated routes, 1 false positive cleared.
| ID | Location | Sink | Verdict | Severity |
|---|---|---|---|---|
| X-01 | ChatWidget.tsx:88 | dangerouslySetInnerHTML | confirmed — agent message body rendered unsanitized | critical |
| X-02 | auth/nav.ts:41 | location.href | likely — open redirect via ?next= param | high |
| X-03 | TicketView.vue:17 | v-html | confirmed — raw ticket comment markup | high |
| X-04 | webview/bridge.ts:12 | message listener | candidate — no event.origin or sender validation | medium |
| X-05 | AttachmentPreview.js:63 | iframe srcdoc | likely — filename echoed into srcdoc | medium |
| X-06 | Profile.tsx:30 | a href | false positive — allowlisted constant source | none |
Next steps
- Wrap X-01 and X-03 in DOMPurify with explicit ALLOWED_TAGS/ALLOWED_ATTR before the release cut
- Add a central safeRedirect() rejecting javascript:, data:, and off-origin next= targets (X-02)
- Gate the bridge listener on a strict event.origin allowlist before parsing payload commands (X-04)
- Re-run the sink inventory in CI so new raw-HTML and location sinks fail review automatically
Connects securely to your tools. The creator never sees your data.
About this skill
Client-side code that accepts external data and reflects it in the browser environment often contains hidden injection risks. This skill audits JavaScript, templates, and WebView code to identify where untrusted sources meet executable sinks without proper controls. It provides a systematic way to trace taint flow from URL fragments, storage, and message handlers to dangerous rendering points.
What it does
- Identify sources of attacker-controlled data from query strings, postMessage payloads, and WebView bridges.
- Trace taint flow through state managers, API clients, and router logic to find reachable vulnerabilities.
- Audit rendering sinks including framework-specific escapes like
dangerouslySetInnerHTML,v-html, and[innerHTML]. - Review navigation logic for redirect abuse and malicious URL execution in
window.locationor link bindings. - Generate remediation using contextual validation, allowlist-based sanitization, and safe DOM patterns.
How it works
- Surface candidates by scanning the codebase for raw HTML sinks, URL sinks, and framework security bypasses.
- Map boundaries to distinguish between trusted build-time constants and untrusted user or third-party inputs.
- Classify context to determine if the risk exists in HTML body, attributes, scripts, or navigation protocols.
- Produce fixes with paste-ready code examples for DOMPurify configurations or framework-native security patterns.
Frameworks & tools
Works with React, Vue, Angular, Svelte, Solid, and Lit. Supports hybrid environments including WebView, Capacitor, Cordova, Ionic, and Electron renderers.
Why this beats prompting it yourself
Generic prompts often miss framework-specific bypasses or the nuanced security requirements of WebView bridges. This skill uses a prioritized audit model that ranks impact based on page privilege and authenticated context, ensuring you fix critical leaks first.
Use cases
- Audit an SPA or PWA for DOM-based XSS before a production release.
- Triage a reported cookie leak or redirect abuse in a hybrid mobile app.
- Review third-party message handlers in a browser extension or iframe.
- Build a security-first code review checklist for a development team.
Known limitations
Does not cover server-side template injection where no browser execution context exists. Requires manual verification for proof-of-concept confirmation.
Server-side template injection and backend authorization issues are out of scope. Scanner patterns surface candidates only — confirmed findings still need a safe manual PoC in a local or staging environment.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before any payment.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
1 use
Times used to date
Free to use
No account required to browse
Trust & safety
Security scan
Security scan passed 26 days ago
- Free with an Agensi account
Requires
Permissions
File Scopes
File reads and shell search inventory sinks and trace taint across frontend source, and the audit report is written back to the local repo; nothing leaves the machine.