Skip to Main Content (Press Enter)

Logo UNIRC
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Attività
  • Competenze

UNI-FIND
Logo UNIRC

|

UNI-FIND

unirc.it
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Attività
  • Competenze
  1. Insegnamenti

1001749 - BASI DI DATI E WEB SECURITY

insegnamento
ID:
1001749
Durata (ore):
64
CFU:
8
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Sede:
REGGIO DI CALABRIA
Url:
Dettaglio Insegnamento:
INGEGNERIA INFORMATICA, ELETTRONICA E DELLE TELECOMUNICAZIONI/INTERNET E CYBERSECURITY Anno: 3
Anno:
2025
  • Dati Generali
  • Syllabus
  • Corsi
  • Persone
  • Altre Info

Dati Generali

Periodo di attività

Primo Ciclo Semestrale (22/09/2025 - 19/12/2025)

Syllabus

Obiettivi Formativi

Modulo di Basi di Dati

Il modulo di Basi di Dati mira a fornire le conoscenze metodologiche e tecniche per progettare, implementare e gestire basi di dati relazionali, utilizzando il linguaggio SQL.

Gli obiettivi principali includono la progettazione concettuale (attraverso il modello Entità/Relazioni) e logica (modello relazionale) della base di dati, la gestione di transazioni, e l'interrogazione efficace dei dati.

Le competenze teoriche di progettazione sono completate con quelle pratiche di realizzazione di una base di dati attraverso il DBMS relazionale MySQL.

Modulo di Web Security

Il modulo di Web Security mira a fornire le conoscenze metodologiche per testare la sicurezza di una Web application ai più comuni attacchi Web.

Gli obiettivi principali includono la capacità di realizzare attacchi di tipo SQL Injection e XSS e di applicare le opportune contromisure per prevenire queste tipologie di attacchi.


Prerequisiti

Modulo di Basi di Dati

Il modulo di Basi di Dati non richiede specifiche conoscenze o competenze (i pochi concetti necessari vengono ripresentati).

Può comunque essere utile prima delle lezioni rivedere:

- algebra booleana in quanto operatori AND e OR verranno usati nell’SQL

- teoria degli insiemi in quanto l’Unione e l’Intersezione tra insiemi verrà richiamata nell’SQL


Inoltre, durante il corso, è utile conoscere la gestione della memoria di massa (file system, memoria primaria vs secondaria) che verrà richiamata per giustificare alcune scelte di progettazione relative a ridondanze e indici (questo argomento verrà approfondito nel modulo di Sistemi Operativi che è erogato contemporaneamente – le lezioni sono coordinate in modo che questi argomenti siano svolti nel corso di sistemi operativi prima del loro utilizzo in questo modulo.


Modulo di Web Security

È richiesta una solida conoscenza delle basi di programmazione (for, if, classi, proprietà e metodi) per la parte di esercitazioni e dell’SQL (quest’ultimo appreso nel modulo di Basi di dati).


Metodi didattici

Modulo di Basi di Dati

L'insegnamento è organizzato secondo la seguente ripartizione:

Lezioni frontali (28 ore): Esposizione dei concetti teorici con l'ausilio di slide e lavagna.

Esercitazioni in aula (20 ore): Risoluzione guidata di problemi di progettazione (E/R, Logica), scrittura di query SQL, utilizzo pratico di MySQL per la creazione e interrogazione di database.

Modulo di Web Security

L'insegnamento è organizzato secondo la seguente ripartizione:

Lezioni frontali (6 ore): Esposizione dei concetti teorici con l'ausilio di slide e lavagna.

Esercitazioni in aula (10 ore): Risoluzione guidata di problemi di ricerca e sfruttamento di vulnerabilità di tipo SQL Injection e XSS e gestione delle relative contromisure.


Verifica Apprendimento

Modalità di accertamento e valutazione.


Nel materiale didattico sono disponibili esempi di tracce d’esame e ulteriori indicazioni che si suggerisce di consultare.


La valutazione finale si basa sui seguenti criteri, in linea con i descrittori AVA 3:

  • 18 - 21 (Sufficiente): Lo studente mostra una limitata conoscenza della materia. Raggiunge la soglia di sufficienza dimostrando di saper progettare una base di dati partendo da una realtà di complessità limitata e di produrre query SQL di base in MySQL che coinvolgano più tabelle (join). Tuttavia, manifesta alcune lacune, incertezze nell'applicare i concetti fondamentali e un'esposizione della materia essenziale, talvolta poco chiara o frammentata.
  • 22 - 24 (Discreto): Lo studente dimostra un'accettabile conoscenza della materia. È in grado di progettare basi di dati affrontando realtà via via più articolate e di formulare query adeguate, pur mostrando una certa confusione in concetti non essenziali. Manifesta discrete capacità di applicare i concetti fondamentali di MySQL e l'esposizione risulta corretta, seppur priva di una struttura del tutto coerente.
  • 25 - 27 (Buono): Lo studente dimostra un'ampia conoscenza della materia e padroneggia la maggior parte degli argomenti del corso. È in grado di progettare basi di dati partendo da realtà di complessità elevata con buona autonomia. Manifesta buone capacità di applicare le conoscenze teoriche alla pratica e utilizza una terminologia adeguata, con un'esposizione chiara ma talvolta schematica.
  • 28 - 29 (Ottimo): Lo studente dimostra una conoscenza approfondita dei contenuti e utilizza una terminologia corretta e rigorosa. Evidenzia una solida comprensione tanto nella progettazione complessa quanto nell'interrogazione del database, manifestando ottime capacità di analizzare i problemi e applicare le soluzioni. L'esposizione è chiara e articolata, ammettendo solo minime imprecisioni.
  • 30 - 30 e lode (Eccellente): Lo studente dimostra una conoscenza completa e dettagliata di tutto il programma. Oltre a padroneggiare la progettazione complessa, è in grado di realizzare in MySQL query SQL avanzate e di sviluppare con prontezza e sicurezza le funzionalità aggiuntive richieste durante la prova orale. Evidenzia una comprensione eccellente e un'esposizione logica, matura e ottimamente strutturata. La lode viene attribuita in caso di padronanza assoluta degli argomenti e spiccata capacità di collegamenti interdisciplinari.
  • Mancato superamento dell'esame (Insufficiente): Lo studente dimostra una conoscenza scarsa o frammentaria. Non raggiunge gli obiettivi minimi, palesando gravi errori nella progettazione di una base di dati o l'incapacità di formulare query SQL che coinvolgano più tabelle (join).



 

L’esame di norma si compone di una prova scritta e una prova orale.

 

La prova scritta si compone di quattro quesiti da svolgere in massimo 1 ora (il tempo realmente utilizzato per svolgere la prova viene considerato nella valutazione).

 

 

Il Quesito 1 può essere di 4 tipi:

a)     data l’analisi dei requisiti, fornire uno schema E/R da essa derivabile;

b)     dato uno schema E/R, fornire un’analisi dei requisiti che lo possa aver generato;

c)     dato uno schema E/R, fornire uno schema relazionale che ne sia la traduzione;

d)     dato uno schema relazionale, fornire uno schema E/R che lo possa avere generato.

Può essere presente un approfondimento della domanda.

 

Il Quesito 2 richiede di svolgere una query SQL di una o più delle tipologie presenti nel materiale didattico.

 

Il Quesito 3 e il Quesito 4 sono domande a risposta aperta su argomenti studiati nel corso. In tal caso la risposta dovrebbe essere il più sintetica possibile evitando di divagare su aspetti non rilevanti.


Contestualmente allo scritto è prevista una discussione orale volta a verificare la capacità di giustificare le risposte date.

 

Ogni quesito riceve una valutazione in trentesimi.

I criteri utilizzati nella valutazione dei quesiti includono: correttezza formale degli schemi, correttezza e efficienza delle query SQL, comprensione delle problematiche e delle soluzioni riguardanti la progettazione delle basi di dati, padronanza del linguaggio tecnico.

E’ necessario (ma non sufficiente) raggiungere il punteggio 18/30 sia nel quesito 1 che nel quesito 2 per superare l’esame.

La valutazione dello scritto è ottenuta facendo la media dei quattro punteggi dei quesiti.

Al termine dello scritto è presente una discussione orale volta ad approfondire, se necessario, gli argomenti trattati nello scritto o durante il corso. L’orale può solo confermare o ridurre il voto dello scritto (non aumentarlo).

 

 

Modulo di Web Security

 

L’esame di norma si compone di una prova scritta e una prova orale.

 

La prova scritta consiste in un quesito da svolgere in massimo 15 minuti (il tempo realmente utilizzato per svolgere la prova viene considerato nella valutazione) somministrato al termine dello scritto di Basi di Dati e di una discussione contestuale.

Al termine viene assegnato un punteggio in trentesimi. I criteri di valutazione utilizzati includono la capacità di individuare, comprendere e sfruttare le vulnerabilità presenti in una Web Application, la capacità di individuare contromisure a tali vulnerabilità, la padronanza del linguaggio tecnico.

 

E’ necessario (ma non sufficiente) raggiungere il punteggio 18/30 nella prova per superare l’esame.

 

Il voto complessivo dell’esame Basi di dati e Web Security è ottenuto dalla media pesata sul numero di CFU del punteggio totale conseguito nel modulo di Basi di dati (peso 3/4) e di Web Security (peso 1/4).




Testi

Modulo di Basi di Dati

Libro di testo (qualunque edizione a partire dalla V)

P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di Dati”, McGraw Hill

(versione inglese al link http://dbbook.dia.uniroma3.it/dbbook.pdf)

Nel materiale didattico disponibile sul Team (codice indicato nella sezione altre informazioni) sono presenti le seguenti dispense che coprono la quasi totalità degli argomenti del modulo:

Parte teorica:

00 - Introduzione al corso.pdf

01 - Sistemi informativi e DBMS.pdf

02 - Modello relazionale.pdf

03 - SQL.pdf

04 - Analisi dei requisiti.pdf

05 - Progettazione concettuale.pdf

06 - progettazione logica.pdf

07 - Indici.pdf

08 - Transazioni.pdf

09 - Properties_XML_JSON.pdf

Esercitazioni pratiche su MySQL:

installazione software.pdf

03 - SQL_Principali query.docx

Per la preparazione all’esame:

Programma corso.pdf

Linee Guida Esame.pdf

Esempio di Progetto Completo.pdf

EsempioScritto1.pdf

EsempioScritto2.pdf

EsempioScritto3.pdf

Sono inoltre disponibili video con le lezioni registrate durante il periodo COVID che, sebbene non siano relative a questo anno accademico, possono essere utili per chi non può frequentare.

Essendo il corso erogato in italiano, la maggior parte del materiale è in italiano. E’ comunque resa disponibile la versione inglese del libro (indicata sopra) ed è possibile richiedere al docente la versione inglese delle slide.

--------------------------------------------------------------------------------------

Modulo di Web Security

Data la natura pratica e la forte dinamicità dei contenuti presentati, un libro di testo potrebbe risultare non aggiornato e inefficace. Per tale motivo, si suggerisce di utilizzare il materiale fornito sul Team e le seguenti risorse on-line.

01 Web.pdf

02 - esempi html.zip

Per gli attacchi di tipo XSS

https://owasp.org/www-community/attacks/xss/

https://en.wikipedia.org/wiki/Cross-site_scripting

https://vercel.com/kb/guide/understanding-xss-attacks

Per gli attacchi di tipo SQL Injection.

https://owasp.org/www-community/attacks/SQL_Injection

https://en.wikipedia.org/wiki/SQL_injection

https://portswigger.net/web-security/sql-injection

Sono stati create e rese disponibile per il solo scopo di esercitarsi le seguenti risorse (sono presenti all’interno opportune indicazioni su come utilizzarle):

https://www.apps.unirc.it:37137/xss/

https://www.apps.unirc.it:37137/SQL_Injection_victim/


Contenuti

Nel materiale didattico disponibile sul Team (codice indicato nella sezione altre informazioni) è possibile trovare queste stesse informazioni eventualmente meglio presentate (con immagini, colori, collegamenti Web a risorse, migliore impaginazione, … che in questa pagina non è possibile includere).

Programma del Modulo Basi di Dati (6 CFU – 48 ore)

Tra parentesi il riferimento alle parti del libro di testo da consultare.


1) Progettazione di una base di dati (2,5 CFU – 20 ore)

I sistemi informativi (sez. 1.1-1.5)

Il modello relazionale (cap. 2)

Metodologie e modelli per il progetto (cap. 6)

Il ciclo di vita dei sistemi informativi (6.1.1)

Il modello Entità/Relazione (6.2)

Documentazione di schemi Entità/Relazione (6.3)

La progettazione concettuale (cap. 7)

Raccolta e analisi dei requisiti (7.1)

Rappresentazione concettuale dei dati (7.2)

Strategie di progetto (7.3)

La progettazione logica (cap. 8)

Ristrutturazione di schemi E-R (8.3)

Analisi delle ridondanze (8.3.1)

Eliminazione delle generalizzazioni (8.3.2)

Partizionamento/accorpamento di concetti (8.3.3)

Scelta degli identificatori principali (8.3.4)

Traduzione verso il modello relazionale (8.4)

Cenni di progettazione fisica

Gestione delle tuple nella pagina (11.2)

Gli indici primari e secondari (11.4.1)

2) Interrogazione di una base di dati (1,5 CFU – 12 ore)

Il linguaggio SQL (Cap. 4)

Il linguaggio SQL e gli standard (4.1)

Modifica dei dati in SQL (4.4)

Interrogazioni in SQL (4.2)

3) Transazioni (0,5 CFU – 4 ore)

Gestione delle transazioni (Cap. 5 e 12)

Transazioni (5.6)

Specifica delle transazioni (5.6.1)

Proprietà acide delle transazioni (5.6.2)

Anomalie delle transazioni (12.2.2)

Locking a due fasi (12.2.4)

4) Altre basi di dati (0,5 CFU – 4 ore)

Cenni di basi di dati per XML (Cap. 13)

Definizione di dati XML, DTD e XML Schema

Javascript Object Notation JSON (16.5.5)

File Properties

5) Implementazione di una base di dati (1 CFU – 8 ore)

Creazione di schemi in MySQL

Creazione di tabelle, vincoli, indici e query

RISULTATI ATTESI


Conoscenza e capacità di comprensione

Al termine del modulo gli studenti e le studentesse conoscono i concetti fondamentali delle basi di dati, del modello relazionale e del linguaggio SQL e comprendono le metodologie di progettazione concettuale (modello E/R) e logica di una base di dati.

Conoscenza e capacità di comprensione applicate

Al termine del modulo gli studenti e le studentesse sono in grado di progettare e realizzare in MySQL basi di dati relazionali che si interfacciano ad altre applicazioni.

Autonomia di giudizio

Al termine del modulo gli studenti e le studentesse sono in grado di prendere opportune decisioni nella progettazione di una base di dati relazionale in contesti applicativi e industriali dell’ICT valutando aspetti quali l’utilizzo di soluzioni non basate su basi di dati relazionali ove questo sia preferibile, l’occupazione di spazio, l’ottimizzazione del tempo di risposta delle query e di modifica dei dati, il modo in cui gestire l’accesso concorrente ai dati.

Abilità comunicative

Al termine del modulo gli studenti e le studentesse utilizzano la terminologia e il linguaggio tecnico relativo alle basi di dati necessario per poter interfacciarsi con altri esperti, anche al fine di illustrare le motivazioni alla base delle scelte progettuali prese e discutere eventuali soluzioni alternative.

Capacità di apprendimento

Al termine del modulo gli studenti e le studentesse hanno acquisito la conoscenza che permette loro di apprendere in autonomia eventuali evoluzioni delle basi di dati e di valutarne pregi e difetti, anche in riferimento a costi e prestazioni.

--------------------------------------------------------------------------------------

Programma del modulo di Web Security (2 CFU – 16 ore)


1) Introduzione alla Web Security (0,5 CFU – 4 ore).

Web e Protocolli. Http request e response. URL.

Basi di HTML. Tag di apertura e chiusura. Collegamenti assoluti e relativi. Form con method GET. Form con method POST. Tag per le immagini.

2) Attacchi di tipo XSS (0,75 CFU – 6 ore)

Ricerca degli entry point. Semplici attacchi XSS reflected. Script di attacco.

Attacchi XSS reflected complessi. Cookie e attributi. XSS Stored. Redirezione dell'output all'esterno. Contromisure ad attacchi XSS.

3) SQL Injection (0,75 CFU – 6 ore).

Payload principale. Blind-SQL Injection. Non Blind-SQL Injection. Uso della UNION. Ricerca del numero di colonne. Ricerca della struttura del database. Memorizzazione di password nel DB. Hash crittografici e salt.

RISULTATI ATTESI

Conoscenza e capacità di comprensione

Al termine del modulo gli studenti e le studentesse conoscono i meccanismi di attacco SQL Injection e XSS e le relative contromisure.

Conoscenza e capacità di comprensione applicate

Al termine del modulo gli studenti e le studentesse sono in grado di effettuare il test di sicurezza di una Web Application individuando vulnerabilità XSS e SQL Injection e applicare le relative contromisure.

Autonomia di giudizio

Al termine del modulo gli studenti e le studentesse sono in grado di prendere opportune decisioni nella scelta di quali soluzioni adottare per contrastare attacchi di tipo XSS e SQL injection valutando vantaggi e svantaggi di ciascuna opzione.

Abilità comunicative

Al termine del modulo gli studenti e le studentesse utilizzano la terminologia e il linguaggio tecnico relativo alla sicurezza Web relativamente ad attacchi di tipo XSS e SQL injection.

Capacità di apprendimento

Al termine del modulo gli studenti e le studentesse hanno acquisito le basi e la conoscenza che permette loro di comprendere eventuali variazioni e raffinamenti degli attacchi di tipo XSS e SQL injection e di valutarne l’impatto in termini di rischi e conseguenze.


Altre informazioni

Codice Team: 8ju3plf


Nel materiale didattico del Team è possibile trovare tutte le informazioni necessarie per preparare questo esame.


Corsi

Corsi

INGEGNERIA INFORMATICA, ELETTRONICA E DELLE TELECOMUNICAZIONI 
Laurea
3 anni
No Results Found

Persone

Persone

LAX Gianluca
Gruppo 09/IINF-05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
AREA MIN. 09 - Ingegneria industriale e dell'informazione
Settore IINF-05/A - Sistemi di elaborazione delle informazioni
Docenti di ruolo di IIa fascia
No Results Found

Altre Info

Insegnamento principale

BASI DI DATI E WEB SECURITY
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 26.3.4.0