About xss-prevention
A security skill for preventing cross-site scripting in web applications. It covers sanitizing input, encoding output, CSP headers, and practices for common content-rendering scenarios, with guides for Node.js, Python, and React.
Key features
- 01Input sanitization and output encoding
- 02CSP header guidance
- 03URL validation and secure cookies
- 04Guides for Node.js, Python, and React
Use cases
- 01Displaying user-generated content
- 02Securing rich text and comments
- 03Handling search and dynamic HTML
- 04Reviewing template rendering
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill xss-preventionAfter installing, type/xss-preventionin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/content-security-policy.mdnodejs-xss-prevention.mdpython-xss-prevention.mdreact-xss-prevention.mdtemplates/component-template.tsxDetails
From the project READMEXSS Prevention
Table of Contents
Overview
Implement comprehensive Cross-Site Scripting (XSS) prevention using input sanitization, output encoding, CSP headers, and secure coding practices.
When to Use
- User-generated content display
- Rich text editors
- Comment systems
- Search functionality
- Dynamic HTML generation
- Template rendering
Quick Start
Minimal working example:
// xss-prevention.js
const createDOMPurify = require("dompurify");
const { JSDOM } = require("jsdom");
const he = require("he");
const window = new JSDOM("").window;
const DOMPurify = createDOMPurify(window);
class XSSPrevention {
/**
* HTML Entity Encoding - Safest for text content
*/
static encodeHTML(str) {
return he.encode(str, {
useNamedReferences: true,
encodeEverything: false,
});
}
/**
* Sanitize HTML - For rich content
*/
static sanitizeHTML(dirty) {
const config = {
ALLOWED_TAGS: [
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Node.js XSS Prevention | Node.js XSS Prevention |
| Python XSS Prevention | Python XSS Prevention |
| React XSS Prevention | React XSS Prevention |
| Content Security Policy | Content Security Policy |
Best Practices
✅ DO
- Encode output by default
- Use templating engines
- Implement CSP headers
- Sanitize rich content
- Validate URLs
- Use HTTPOnly cookies
- Regular security testing
- Use secure frameworks
❌ DON'T
- Trust user input
- Use innerHTML directly
- Skip output encoding
- Allow inline scripts
- Use eval()
- Mix contexts (HTML/JS)
Comments
Markdown supported