aj-geddes/useful-ai-prompts7 files

Csrf Protection

>

Specification
Skill ID
aj-geddes/useful-ai-prompts/csrf-protection
Publisher
aj-geddes
Repository
useful-ai-prompts
Installs
0
Files
7
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

aj-geddes/useful-ai-prompts/csrf-protectionInstalls these files
  • SKILL.md
  • references/double-submit-cookie-pattern.md
  • references/frontend-csrf-implementation.md
  • references/nodejsexpress-csrf-protection.md
  • references/origin-and-referer-validation.md
  • references/python-flask-csrf-protection.md
  • scripts/security-checklist.sh

What this skill tells the agent

CSRF Protection

Table of Contents

  • Overview
  • When to Use
  • Quick Start
  • Reference Guides
  • Best Practices

Overview

Implement comprehensive Cross-Site Request Forgery protection using synchronizer tokens, double-submit cookies, SameSite cookie attributes, and custom headers.

When to Use

  • Form submissions
  • State-changing operations
  • Authentication systems
  • Payment processing
  • Account management
  • Any POST/PUT/DELETE requests

Quick Start

Minimal working example:

// csrf-protection.js
const crypto = require("crypto");
const csrf = require("csurf");

class CSRFProtection {
  constructor() {
    this.tokens = new Map();
    this.tokenExpiry = 3600000; // 1 hour
  }

  /**
   * Generate CSRF token
   */
  generateToken() {
    return crypto.randomBytes(32).toString("hex");
  }

  /**
   * Create token for session
   */
  createToken(sessionId) {
    const token = this.generateToken();
    const expiry = Date.now() + this.tokenExpiry;

    this.tokens.set(sessionId, {
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Node.js/Express CSRF ProtectionNode.js/Express CSRF Protection
Double Submit Cookie PatternDouble Submit Cookie Pattern
Python Flask CSRF ProtectionPython Flask CSRF Protection
Frontend CSRF ImplementationFrontend CSRF Implementation
Origin and Referer ValidationOrigin and Referer Validation

Best Practices

✅ DO

  • Use CSRF tokens for all state-changing operations
  • Set SameSite=Strict on cookies
  • Validate Origin/Referer headers
  • Use secure, random tokens
  • Implement token expiration
  • Use HTTPS only
  • Include tokens in AJAX requests
  • Test CSRF protection

❌ DON'T

  • Skip CSRF for authenticated requests
  • Use GET for state changes
  • Trust Origin header alone
  • Reuse tokens
  • Store tokens in localStorage
  • Allow credentials in CORS without validation

Use this skill in a project

Open any RiverX project, search the Skills panel for aj-geddes/useful-ai-prompts/csrf-protection, and install it in one click.

Use this skill