Gennaio 17, 2025

CSRF vulnerabilities in PHP: Cos’è e A Cosa Serve?

Introduzione

Le vulnerabilità CSRF (Cross-Site Request Forgery) rappresentano una minaccia significativa per la sicurezza delle applicazioni web, permettendo agli attaccanti di compiere azioni non autorizzate per conto di un utente autenticato.

Spiegazione

CSRF è un tipo di attacco che inganna un browser facendogli eseguire un’azione indesiderata in un’applicazione web in cui l’utente è autenticato. Questo attacco sfrutta la fiducia che un’applicazione ha nei confronti del browser di un utente. Quando un utente è loggato in un’applicazione, il browser include automaticamente i cookie di sessione nelle richieste HTTP inviate al server. Un attaccante può sfruttare questa fiducia inviando una richiesta dannosa che sembra legittima.

Quando si utilizza

Le vulnerabilità CSRF si manifestano principalmente in applicazioni web che non implementano adeguate protezioni contro tali attacchi. Queste protezioni includono l’uso di token CSRF unici e l’implementazione di meccanismi che verificano l’origine delle richieste.

Problema: Mancanza di token CSRF

Uno degli errori più comuni che portano a vulnerabilità CSRF è la mancanza di token CSRF nei form HTML. Senza un token CSRF unico e non prevedibile, un attaccante può facilmente costruire una richiesta dannosa che sfrutta l’autenticazione dell’utente.

Soluzione: Implementazione di un token CSRF

Esempi

Esempio di codice vulnerabile

<form action="update_profile.php" method="post"> <input type="text" name="username"> <input type="submit" value="Update"> </form>

In questo esempio, il form non include un token CSRF, rendendolo vulnerabile agli attacchi.

Esempio di codice con protezione CSRF

<form action="update_profile.php" method="post"> <input type="text" name="username"> <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>"> <input type="submit" value="Update"> </form>

In questo esempio, il form include un token CSRF, aumentando notevolmente la sicurezza contro gli attacchi CSRF.

Giorgio

Sono un Web Developer con oltre 20 anni di esperienza nello sviluppo di applicazioni web complesse. Specializzato in PHP, gestione di database relazionali e non relazionali, e integrazione di API, realizzo soluzioni robuste e scalabili per soddisfare esigenze aziendali e tecniche. Mi occupo di architetture server-side, ottimizzazione delle performance e automazione dei processi.