0Pricing
JavaScript Academy · Lezione

Validazione degli input e basi dell’escaping

Validi e normalizzi gli input con piccole allowlist e guard clause; fai l’escape dei caratteri rischiosi prima di visualizzare il testo.

Validazione degli input e basi dell’escaping è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. 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 JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 3 lezioni in totale.

Panoramica

Obiettivo: rendere gli input semplici e sicuri.

  • Usate le guard clause per rifiutare subito gli input
  • Preferite le allowlist alle regole vaghe
  • Normalizzate a una struttura semplice
  • Eseguite l'escape dei caratteri speciali prima di mostrare il testo
Validazione degli input e basi dell’escaping — illustrazione 1

Basi delle verifiche sui numeri

Aggiungete controlli semplici: verificate il tipo e l'intervallo, poi normalizzate il valore finale.

// Validate age: number and range guard
function parseAge(input) {
  // trim and parse
  const n = Number(input);
  if (!Number.isFinite(n)) return null; // reject non-numbers
  if (n < 0 || n > 130) return null;    // reject out-of-range
  return Math.floor(n);                  // normalize to integer
}

console.log("age ok:", parseAge("21"));
console.log("age bad:", parseAge("twenty"));
Validazione degli input e basi dell’escaping — illustrazione 2

Escape per una visualizzazione sicura

Prima di mostrare il testo inserito dall'utente, esegua l'escape dei caratteri speciali affinché l'interfaccia lo tratti come testo normale.

// Escape a few risky characters before displaying in HTML contexts
function escapeText(s) {
  if (typeof s !== "string") return "";
  return s
    .replaceAll("&", "&amp;")
    .replaceAll("<", "&lt;")
    .replaceAll(">", "&gt;")
    .replaceAll("\"", "&quot;")
    .replaceAll("'", "&#39;");
}

console.log("escaped:", escapeText("<b>Hello & bye</b>"));
Validazione degli input e basi dell’escaping — illustrazione 3

Le allowlist nella pratica

Preferisca le allowlist per gli insiemi fissi (come codici o ruoli). Normalizzi maiuscole/minuscole e spaziatura.

// Allowlist example: only certain country codes
const ALLOWED = new Set(["TR", "US", "DE", "GB"]);

function parseCountry(code) {
  if (typeof code !== "string") return null;
  const up = code.trim().toUpperCase();
  if (!ALLOWED.has(up)) return null; // reject unknown
  return up; // normalized
}

console.log("country ok:", parseCountry("tr"));
console.log("country bad:", parseCountry("xx"));
Validazione degli input e basi dell’escaping — illustrazione 4

Piccolo validatore di oggetti

Verifichi tipo e limiti, quindi restituisca una struttura normalizzata di cui il resto del codice possa fidarsi.

// Validate a tiny user object and normalize
function validateUser(input) {
  if (typeof input !== "object" || input === null) return null;

  const nameOk = typeof input.name === "string" && input.name.trim().length >= 1 && input.name.trim().length <= 40;
  const ageOk = parseAge(input.age) !== null;

  if (!nameOk || !ageOk) return null;

  return {
    name: input.name.trim(),
    age: parseAge(input.age)
  };
}

console.log("user ok:", validateUser({ name: " Ayla ", age: "22" }));
console.log("user bad:", validateUser({ name: "", age: "old" }));
Validazione degli input e basi dell’escaping — illustrazione 5

Buone pratiche difensive

Suggerimenti:

  • Convalidi ai punti di ingresso (input dell'utente, rete).
  • Utilizzi allowlist, intervalli e controlli del tipo.
  • Normalizzi una sola volta; mantenga semplice il resto.
  • Esegua l'escape prima di mostrare il testo agli utenti.
Validazione degli input e basi dell’escaping — illustrazione 6

Quiz sulle basi della difesa degli input

Verifica rapida: modello di input sicuro.

Validazione degli input e basi dell’escaping — illustrazione 7

Riepilogo

Riepilogo: applichi i controlli subito, utilizzi le allowlist, normalizzi in una struttura sicura ed esegua l'escape prima della visualizzazione. Mantenga ogni passaggio piccolo e leggibile.

Validazione degli input e basi dell’escaping — illustrazione 8

Domande Frequenti

La lezione «Validazione degli input e basi dell’escaping» è gratuita?

Sì — il testo completo di «Validazione degli input e basi dell’escaping» è 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 JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 3 lezioni in totale.

Cosa imparerò in «Validazione degli input e basi dell’escaping»?

Validi e normalizzi gli input con piccole allowlist e guard clause; fai l’escape dei caratteri rischiosi prima di visualizzare il testo. Eserciti JavaScript 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 JavaScript Academy?

Non è richiesta alcuna esperienza precedente. JavaScript 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 1 di 3.

Quanto tempo richiede la lezione «Validazione degli input e basi dell’escaping»?

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 JavaScript Academy?

Sì. Ogni lezione JavaScript 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. Validazione degli input e basi dell’escaping
  2. Fusione sicura degli oggetti; congelamento e sigillatura
  3. Error boundary (concettuali) senza framework
← Torna a JavaScript Academy