XSS: Cross-Site Scripting prevenzione

Gli attacchi XSS iniettano script malevoli nelle pagine web.

Codice vulnerabile

// PERICOLOSO!
echo "Ciao " . $_GET["nome"];
// URL: ?nome=

Prevenzione: htmlspecialchars

// Converte caratteri speciali in entità HTML
echo "Ciao " . htmlspecialchars($_GET["nome"], ENT_QUOTES, "UTF-8");

Funzione helper

function e($string) {
    return htmlspecialchars($string, ENT_QUOTES, "UTF-8");
}

echo "Ciao " . e($_GET["nome"]);

Content Security Policy

header("Content-Security-Policy: default-src 'self'");

Regole

  • Sempre escape output utente
  • Usa template engine con auto-escape
  • Valida e sanitizza input

Hai trovato utile quest'articolo?

  • Introduzione a PHP

    PHP (PHP: Hypertext Preprocessor) è un linguaggio di scripting server-side usato per lo sviluppo web...
  • Variabili PHP

    Le variabili in PHP iniziano sempre con il simbolo dollaro $.Dichiarazione$nome = "Mario"; $eta = 30...
  • Stringhe in PHP

    Le stringhe sono sequenze di caratteri racchiuse tra virgolette.Virgolette singole vs doppie$nome = ...
  • Array in PHP

    Gli array permettono di memorizzare più valori in una singola variabile.Array indicizzati$frutti = [...
  • Operatori PHP

    Gli operatori PHP permettono di eseguire operazioni su variabili e valori.Operatori aritmetici$a + $...