logo

Database

Typescript Manual Csrf Token Handling Ajax

Description

This detector identifies AJAX requests that lack proper CSRF (Cross-Site Request Forgery) protection mechanisms. AJAX calls without CSRF tokens are vulnerable to cross-site request forgery attacks where malicious sites can trigger unauthorized actions on behalf of authenticated users.

Weakness:

014 - Insecure functionality

Category: Functionality Abuse

Detection Strategy

    • Analyzes TypeScript/JavaScript code for AJAX request implementations

    • Examines AJAX calls to check for CSRF token inclusion

    • Reports vulnerability when AJAX requests are made without proper CSRF token headers or parameters

    • Focuses on state-changing HTTP methods (POST, PUT, DELETE, PATCH) that require CSRF protection

Vulnerable code example

// VULNERABLE: CSRF token extracted from URL referrer
const token = document.referrer.split('csrfToken=')[1];
$.ajax({
    url: '/api/create-post',
    method: 'POST',
    headers: {
        'X-CSRF-Token': token // Attacker-controlled token from referrer
    }...

✅ Secure code example

// SECURE: CSRF token from server-provided meta tag or function parameter
const token = document.querySelector('meta[name="csrf-token"]')?.getAttribute('content');
if (token) {
    $.ajax({
        url: '/api/create-post',
        method: 'POST',
        headers: {
            'X-CSRF-Token': token // Token from trusted server source...