Validare l'input per bloccare le injection
Rifiuti i payload dannosi al perimetro dell'applicazione.
Validare l'input per bloccare le injection è una lezione Flask Academy gratuita su CoddyKit. Questa è la lezione 4 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 Flask Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Flask Academy include 4 lezioni in totale.
Non si fidi mai dell'input
Ogni valore inviato da un client potrebbe essere ostile. Considerare ogni input non attendibile è l'approccio che previene la maggior parte degli attacchi.
Cosa significa injection
La injection si verifica quando l'input dell'utente viene trattato come codice o comando. L'aggressore inserisce istruzioni in una query o in una shell.
SQL injection in una riga
Inserire direttamente l'input nel codice SQL è l'errore classico. Un valore preparato ad arte può riscrivere la Sua query ed estrarre l'intera tabella.
db.execute("SELECT * FROM users WHERE name = '" + name + "'")Usi query parametrizzate
La soluzione consiste nel passare i valori come parametri, mai concatenando stringhe. Il driver li sottoporrà al corretto escaping in modo sicuro.
db.execute("SELECT * FROM users WHERE name = ?", (name,))L'ORM aiuta
Con SQLAlchemy usa filter_by e valori associati, così le query sono parametrizzate per impostazione predefinita e l'injection è molto più difficile.
User.query.filter_by(name=name).first()Convalidi forma e tipo
Verifichi che l'input corrisponda a ciò che si aspetta prima di utilizzarlo. Confermi il type e l'intervallo, così una stringa non potrà mai trovarsi al posto di un numero.
age = request.args.get("age", type=int)Allowlist invece di blocklist
Elencare i pochi valori accettati è meglio che inseguire ogni valore dannoso. Una allowlist rifiuta tutto ciò che non ha autorizzato esplicitamente.
Convalidi con uno schema
Una libreria per gli schemi come Marshmallow controlla i campi per Lei. Genera un ValidationError quando il payload ha una forma errata.
data = UserSchema().load(request.get_json())Esegua l'escaping dell'output per XSS
L'injection può arrivare anche nell'HTML. L'autoescaping di Jinja2 trasforma il testo dell'utente in caratteri sicuri, impedendo l'esecuzione degli script nella pagina.
Faccia attenzione al filtro safe
Contrassegnare il contenuto con il filtro safe disabilita l'escaping. Lo faccia solo per testo di cui si fida completamente, mai per input utente non elaborato.
Rifiuti subito al bordo
Convalidi i dati nel momento in cui arrivano, prima che tocchino la Sua logica. Fallire fast con un 400 impedisce all'input errato di propagarsi.
Verifica rapida
Scelga la tecnica che blocca la SQL injection.
Riepilogo
Ha imparato a diffidare dell'input, a bloccare la SQL injection con query parametrizzate, a convalidare con gli schemi, ad ammettere solo valori in allowlist e a eseguire l'escaping dell'output. Un ottimo lavoro di sicurezza!
Domande Frequenti
La lezione «Validare l'input per bloccare le injection» è gratuita?
Sì — il testo completo di «Validare l'input per bloccare le 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 Flask Academy, passa a CoddyKit PRO. Il corso Flask Academy include 4 lezioni in totale.
Cosa imparerò in «Validare l'input per bloccare le injection»?
Rifiuti i payload dannosi al perimetro dell'applicazione. Eserciti Flask 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 Flask Academy?
Non è richiesta alcuna esperienza precedente. Flask 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 4 di 4.
Quanto tempo richiede la lezione «Validare l'input per bloccare le 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 Flask Academy?
Sì. Ogni lezione Flask 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
- Limitare le richieste con Flask-Limiter
- Configurare CORS per i client browser
- Header di sicurezza e HTTPS
- Validare l'input per bloccare le injection