0Pricing
Django Academy · Lezione

Difese contro XSS, CSRF e SQL injection

Usare correttamente le protezioni di Django

Difese contro XSS, CSRF e SQL injection è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.

I tre grandi attacchi web

La maggior parte delle violazioni web deriva da tre attacchi classici: XSS, CSRF e SQL injection. La buona notizia è che Django difende da tutti e tre quando viene usato normalmente. 🛡️

Che cos'è XSS

XSS si verifica quando il testo fornito da un aggressore viene mostrato come HTML attivo o script nel browser di un altro utente, permettendo di sottrarre dati o di prendere il controllo della pagina.

I template eseguono l'escape automaticamente

Il motore dei template di Django esegue automaticamente l'escape delle variabili, trasformando i caratteri pericolosi in entità sicure. Uno script inserito dall'utente viene visualizzato come testo innocuo, non come codice.

<p>{{ user_comment }}</p>

Non disabilitare l'escaping

Il filtro safe e mark_safe disabilitano l'escaping. Li utilizzi solo per contenuti di cui si fida completamente, altrimenti riaprirà da solo la porta agli attacchi XSS.

{{ user_comment|safe }}

Che cos'è CSRF

CSRF induce il browser di un utente autenticato a inviare una richiesta nascosta al sito, eseguendo azioni mai intenzionate dall'utente, come cambiare una password.

Il token CSRF

Django blocca questo attacco con un token CSRF segreto associato a ogni sessione. Un modulo falsificato proveniente da un altro sito non può includere il token corretto, quindi la richiesta POST viene rifiutata.

Aggiungere il token ai moduli

Inserisca il tag csrf_token all'interno di ogni modulo POST. Django inserisce il campo nascosto e lo verifica all'invio, tutto automaticamente.

<form method="post">{% csrf_token %}
  ...
</form>

Che cos'è SQL injection

SQL injection inserisce SQL dannoso in una query tramite i dati forniti dall'utente, permettendo a un aggressore di leggere, modificare o eliminare dati che non dovrebbe mai poter toccare.

L'ORM La protegge

L'uso dell'ORM offre protezione per impostazione predefinita. I valori vengono parametrizzati, quindi i dati forniti dall'utente vengono trattati come dati e mai come SQL eseguibile.

Article.objects.filter(title=user_input)

Parametrizzare l'SQL grezzo

Se deve scrivere SQL grezzo, non inserisca mai direttamente i dati nella stringa. Passi i valori come parametri, così il driver li proteggerà eseguendo l'escape in modo sicuro.

Article.objects.raw("SELECT * FROM blog_article WHERE id = %s", [pk])

Aggiungere una Content Security Policy

Per una difesa aggiuntiva contro XSS, una Content Security Policy comunica ai browser quali script possono essere eseguiti. Limita i danni anche se del markup dannoso riesce a passare.

Verifica rapida

Una domanda su come Django tiene alla larga questi attacchi.

Riepilogo: le impostazioni predefinite sono Sue alleate

L'escaping automatico dei template, il token CSRF e l'ORM parametrizzato bloccano XSS, CSRF e SQL injection. Mantenga le impostazioni predefinite e resterà al sicuro. 🙌

Domande Frequenti

La lezione «Difese contro XSS, CSRF e SQL injection» è gratuita?

Sì — il testo completo di «Difese contro XSS, CSRF e SQL injection» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.

Cosa imparerò in «Difese contro XSS, CSRF e SQL injection»?

Usare correttamente le protezioni di Django Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Django Academy?

Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Difese contro XSS, CSRF e SQL injection»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Django Academy?

Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. DEBUG, SECRET_KEY e ALLOWED_HOSTS
  2. HTTPS, HSTS e cookie sicuri
  3. Difese contro XSS, CSRF e SQL injection
  4. Eseguire la checklist di deployment
← Torna a Django Academy