
Formazione interattiva sulla codifica sicura con esercizi SCORM pratici che trattano le vulnerabilità web e API della OWASP Top 10, l'esposizione di segreti/Git ed esempi di remediation in oltre 10 linguaggi.
40 esercizi gratuiti e open source di codifica sicura che insegnano la sicurezza delle applicazioni web nel modo in cui gli sviluppatori imparano — sfruttando vulnerabilità reali come SQL injection, cross-site scripting (XSS) e controllo degli accessi non corretto, per poi scrivere la correzione. Moduli SCORM interattivi che coprono OWASP Top 10 per Web, API, la sicurezza dei repository Git e molto altro. Esempi di remediation in JavaScript, TypeScript, Java, C#, Python, Scala, PHP, Ruby, Go e Kotlin.

👥 Parla con i fondatori | 🔗 Sfoglia la libreria completa | 🎮 Prova una demo live di DOM XSS
Leggere l'OWASP Top 10 una volta l'anno e superare un quiz a scelta multipla non previene le vulnerabilità delle applicazioni web in produzione. Gli sviluppatori devono vedere cosa fa un exploit reale — un'iniezione SQL che scarica un database, un cross-site scripting che dirotta una sessione, un controllo degli accessi non corretto che espone i dati di un altro utente — e poi scrivere il codice sicuro che lo blocca.
Ogni esercizio di questa libreria segue una metodologia in tre fasi: sfrutta, traccia, correggi.
Esegui un test di penetrazione pratico contro un'applicazione volutamente vulnerabile — un'iniezione SQL contro un database, un XSS che si attiva nel browser, un SSRF che raggiunge l'endpoint dei metadati cloud — poi traccia esattamente come è stata introdotta la vulnerabilità e applica le best practice di codifica sicura per correggerla.
Gli esercizi coprono:
Ogni esercizio termina con un quiz con soglia di superamento al 100%. Quando uno sviluppatore arriva a scrivere codice di produzione, ha già sfruttato ogni vulnerabilità comune delle applicazioni web e conosce le best practice di codifica sicura che la prevengono.
Ogni esercizio viene fornito come SCORM 1.2 .zip — importalo in qualsiasi LMS (Moodle, SAP SuccessFactors, Cornerstone, TalentLMS o qualsiasi piattaforma conforme a SCORM), integralo nella tua pipeline di formazione SDLC o provalo in anteprima su SCORM Cloud prima del lancio.
White-label — nessun logo, nessun backlink, nessun vincolo al fornitore. Usali come parte di un programma DevSecOps, di un'iniziativa SDLC sicura o come formazione autonoma sulla sicurezza delle applicazioni.
Concesso in licenza con Creative Commons Attribution-NonCommercial 4.0 International. Puoi utilizzare, adattare e ridistribuire con attribuzione per qualsiasi scopo non commerciale — formazione interna, workshop, corsi universitari. Non è consentita la rivendita del contenuto come prodotto autonomo.
Hai bisogno di formazione sulla codifica sicura su larga scala senza gestire un tuo LMS? Offriamo una piattaforma cloud aziendale progettata appositamente per la formazione sulla sicurezza delle applicazioni dei team di ingegneria. Contattaci per vederla in azione.
Multi-tenant fin dall'inizio — offri formazione sulla sicurezza delle applicazioni all'intero portafoglio clienti da un unico pannello:
Interessato? Contattaci
Clickjacking — Rubare un clic su un pulsante di approvazione bancaria sovrapponendo un iframe trasparente, catturando un'approvazione reale e implementando CSP frame-ancestors.
Iniezione di comandi — Concatenare un secondo comando a uno strumento lato server alterando una richiesta catturata, osservando la fuoriuscita dei segreti del server e implementando l'esecuzione con elenco di argomenti.
Componenti con vulnerabilità note — Ottenere l'esecuzione di codice tramite una libreria obsoleta sfruttando un CVE pubblicato, eseguendo comandi tramite un upload appositamente creato e aggiornando la versione ed eseguendo la scansione in CI.
Cross-Site Request Forgery — Spostare denaro da una pagina che la vittima non ha mai considerato attendibile inviando automaticamente un trasferimento cross-site, capendo perché i cookie viaggiano insieme alla richiesta e aggiungendo token per sessione e SameSite.
Directory Traversal — Leggere file di sistema tramite un link di download uscendo dalla cartella prevista, estraendo /etc/passwd dal server e canonicalizzando, quindi verificando.
DOM XSS — Attivare un XSS che il server non vede mai nascondendo un payload nell'hash dell'URL, tracciando un sink innerHTML non sicuro e passando a textContent.
Navigazione forzata — Estrarre un export di PII dei dipendenti da una rotta non collegata raggiungendo un URL interno in modo anonimo, capendo perché l'oscurità non è controllo degli accessi e imponendo l'autenticazione lato server.
Escalation orizzontale dei privilegi — Cambiare una cifra e leggere i dati di un altro cliente percorrendo un IDOR da entrambi i lati, enumerando gli id sequenziali dei record e aggiungendo il controllo di proprietà mancante.
— Reindirizzare un'email di reset della password verso un dominio simile falsificando l'header X-Forwarded-Host, rubando il token di reset cliccato e fissando un URL di base configurato.
Autorizzazione non corretta a livello di funzione — Chiamare endpoint riservati allo staff da un account di sola lettura raggiungendo le rotte admin come analista, estraendo un elenco del personale e mettendo in coda un pagamento e infine aggiungendo un controllo dei ruoli a livello di router.
Autorizzazione non corretta a livello di oggetto — Scambiare un id e leggere i dati di un altro rider modificando l'id dell'oggetto in una richiesta, raccogliendo record scorrendo gli id e applicando la proprietà per oggetto.
Autenticazione utente non corretta — Forzare con brute force un codice di login a sei cifre attaccando un endpoint di verifica senza limiti, impossessandosi dell'account con una sola email e applicando il rate limiting per account con 429.
Esposizione eccessiva dei dati — Leggere i campi che la UI non mostra mai confrontando la pagina renderizzata con il JSON grezzo, trovando telefono, data di nascita e coordinate e serializzando un allow-list di campi.
Gestione impropria dell'inventario — Leggere record tramite una versione API dismessa sostituendo v2 con una v1 deprecata, bypassando i controlli imposti dalla nuova versione e ritirando le vecchie versioni con 410 Gone.
Iniezione — Trasformare una casella di ricerca in una lettura completa del database uscendo da una query del catalogo, scaricando la tabella users con UNION e parametrizzando affinché l'input rimanga un semplice dato.
Logging e monitoraggio insufficienti — Cercare un cliente senza lasciare tracce accedendo a un record senza ticket, capendo perché nessuno può attribuirlo e aggiungendo record di audit e avvisi.
Mass Assignment — Creare un saldo fedeltà con due chiavi extra aggiungendo campi al corpo di una PATCH, scrivendo attributi di cui non dovresti essere proprietario e vincolando solo i campi modificabili.
Segreti nella cronologia di Git — Recuperare una chiave API ancora attiva dal commit che l'ha rimossa percorrendo la cronologia di un file di configurazione ripulito, riutilizzando una chiave mai ruotata e ruotandola prima, per poi ripulire con git filter-repo.
Directory .git esposta — Ricostruire un intero codebase da un singolo URL pubblico trovando un .git navigabile nella web root, scaricando il repository e recuperando il sorgente e distribuendo gli artefatti di build invece del repository.
File segreti committati — Clonare un repository pubblico e leggere il suo .env committato individuando i file segreti tracciati dal primo commit, rimuovendoli dal tracciamento con git rm --cached e ruotando i segreti e aggiungendo un .gitignore e un hook pre-commit.
Spoofing dell'autore del commit — Introdurre una backdoor indossando il nome di un maintainer raccogliendo un'identità di autore da git log, leggendo il badge di firma Unverified e richiedendo commit firmati per tutti i contributor, inclusi gli amministratori.
Bypass della protezione dei branch — Eseguire force-push su main e saltare review e CI riscrivendo la cronologia su un branch non protetto, portando codice non revisionato direttamente in produzione e richiedendo pull request, revisori e controlli.
Access token trapelati — Clonare repository privati con un token preso da un gist pubblico verificando cosa può raggiungere un token con scope eccessivi, revocando e ruotando invece di limitarsi a cancellare il gist e riemettendo token granulari e di breve durata.
Pull request dannose — Scoprire una backdoor nascosta in una correzione di test dall'aspetto innocuo leggendo il diff completo invece della descrizione, segnalando le modifiche fuori scope agli script di deploy e rafforzando la revisione con CODEOWNERS e limiti sui fork.
— Estrarre una chiave di deploy direttamente da un log di build pubblico trovando lo step del workflow che stampa un segreto, impedendo che input non attendibili vengano eseguiti come comandi shell e ancorando le action al commit SHA e ruotando la chiave.
Reindirizzamento URL non sicuro — Nascondere una pagina di phishing dietro un login reale abusando del parametro next, capendo perché il dominio sembra corretto e consentendo solo target relativi.
Codice di debug residuo — Estrarre segreti di produzione da una rotta di debug dimenticata trovando un endpoint che scarica le variabili d'ambiente, leggendo i segreti JWT e del database e chiudendo in modalità fail-closed con un allow-list.
PII nell'URL — Estrarre dati personali direttamente da un link individuando gli identificatori nelle query string, seguendo la fuga nei log e nei referrer e riscrivendo in token opachi.
XSS riflesso — Creare un URL dannoso che si esegue nel momento stesso in cui viene aperto riflettendo un payload da una pagina di ricerca, comprendendo il flusso in cui la vittima clicca il link e applicando l'escape al confine del rendering.
Server-Side Request Forgery — Far recuperare al server le proprie credenziali cloud abusando di una funzionalità di anteprima dei link, raggiungendo l'endpoint dei metadati e validando le destinazioni in uscita.
Session Fixation — Impiantare un id di sessione ed ereditare il login della vittima fissando un id noto sulla vittima, osservando il login riutilizzarlo e rigenerandolo a ogni login.
SQL Injection — Scaricare un database tramite un modulo di ricerca non protetto sfruttando un payload di tautologia, esfiltrando le tabelle con UNION SELECT e implementando la correzione con query parametrizzate.
XSS memorizzato — Piantare uno script in un commento e osservarlo attivarsi memorizzando un payload in un contenuto utente, vedendolo eseguire per il visitatore successivo e applicando l'escape all'output al momento del rendering.
Esposizione di token nell'URL — Ripetere un token di sessione raccolto da un log dei referrer intercettando un token in un URL di reindirizzamento, riproducendolo in un account attivo e spostandolo in un cookie HttpOnly.
Enumerazione degli utenti — Raccogliere un elenco verificato di clienti da un modulo di login leggendo corpi di errore differenti, misurando le fughe nei tempi di risposta e uniformando errori e tempi.
Escalation verticale dei privilegi — Falsificare un claim di ruolo e diventare amministratore alterando il token di sessione, passando da viewer ad admin e verificando i token prima di fidarsene.
Casualità debole — Prevedere un token di reset della password e impossessarsi dell'account campionando i token dal generatore, recuperando lo stato di Math.random() e passando a crypto.randomBytes.
XXE Injection — Leggere il file delle password tramite un upload XML inviando un ordine di acquisto appositamente creato, risolvendo un'entità esterna e disabilitando la risoluzione delle entità.
Configurazione di sicurezza errata — Leggere un account connesso da qualsiasi sito web riflettendo un'origine CORS arbitraria, trasformando una pagina esca in un'arma e bloccando CORS a un allow-list.
Consumo illimitato di risorse — Scrapare un catalogo con un'unica richiesta sovradimensionata impostando la dimensione della pagina dalla richiesta, estraendo 250.000 record in una volta e limitando la dimensione della pagina lato server.