Paniere domande

207 domande totali nel paniere. Usa i filtri per studiare per area o per tipo.

Tutte LOGICA (27) TECNICA (22) CAD (22) PUB165 (18) GDPR (17) RETI (17) SIT (19) CLOUD (8) NIS2 (7) SIC (7) INGLESE (10) BIGDATA (6) AIACT (6) DAMM (5) DATABASE (5) DEVOPS (4) ENTI (7)
inglese logica normativa profilo situazionale

22 domande — Area TECNICA

1/22 · TECNICA · profilo · INF-0046

In JavaScript, `element.addEventListener('click', handler, true)` registra il gestore nella fase di:

[A] Bubbling: l'evento risale dal target verso la radice
[B] Capturing: l'evento scende dalla radice verso il target
[C] Un thread separato per non bloccare il rendering
[D] Coda microtask, eseguita dopo i macrotask
Spiegazione

✅ B. Il terzo parametro `true` di addEventListener attiva la fase di CAPTURING (discesa dalla radice al target). Con `false` (default) è il BUBBLING (risalita dal target alla radice). Non esistono «thread separati» nel modello di eventi DOM — JavaScript è single-threaded. ❌ A: il bubbling corrisponde al valore `false`. ❌ C: i thread separati non esistono per i gestori DOM normali. ❌ D: la coda microtask è per Promise/queueMicrotask, non per addEventListener.

2/22 · TECNICA · profilo · INF-0047

Padre e figlio hanno entrambi un gestore 'click' in modalità bubbling. Cliccando sul figlio, quale scatta per primo?

[A] Il gestore del padre, poi quello del figlio
[B] Il gestore del figlio, poi quello del padre
[C] Entrambi simultaneamente in thread separati
[D] Solo quello del figlio (il padre non riceve l'evento)
Spiegazione

✅ B. In fase di BUBBLING l'evento parte dal target (figlio) e risale verso gli antenati: prima gestore del figlio, poi del padre. In capturing (terzo parametro `true`) è l'opposto. ❌ A: descrive il comportamento in fase capturing, non bubbling. ❌ C: thread separati non esistono per il DOM. ❌ D: il padre riceve l'evento tramite bubbling, salvo `stopPropagation()`.

3/22 · TECNICA · profilo · INF-0048

Qual è la differenza tra `event.stopPropagation()` e `event.preventDefault()`?

[A] Sono sinonimi, fanno la stessa cosa
[B] stopPropagation blocca la propagazione dell'evento verso altri elementi; preventDefault annulla l'azione default del browser
[C] preventDefault blocca la propagazione; stopPropagation annulla l'azione default
[D] stopPropagation ferma tutti gli script sulla pagina; preventDefault ferma solo il form
Spiegazione

✅ B. `stopPropagation()` impedisce che l'evento si propaghi (né bubbling né capturing). `preventDefault()` annulla l'azione di default del browser (es. submit del form, follow di un link). Sono indipendenti: si possono usare entrambi, uno solo, o nessuno. ❌ A: sono metodi distinti con effetti diversi. ❌ C: li inverte. ❌ D: stopPropagation non ferma «tutti gli script», agisce solo sulla catena di propagazione dell'evento corrente.

4/22 · TECNICA · profilo · INF-0049

JavaScript nel browser è fondamentalmente:

[A] Multithreaded: ogni callback gira in un thread dedicato
[B] Single-threaded con event loop: un solo blocco di codice JS alla volta nel main thread
[C] Multithreaded per le Promise, single-threaded per gli eventi DOM
[D] Eseguito da più thread condivisi che accedono al DOM in parallelo
Spiegazione

✅ B. JS ha un singolo thread principale (main thread). L'event loop gestisce una coda di callback/messaggi eseguendoli uno alla volta. I Web Workers sono thread separati ma NON accedono al DOM direttamente. Le Promise non cambiano questo — usano la coda delle microtask nello stesso thread. ❌ A e D: il DOM non è thread-safe; l'accesso parallelo causerebbe race condition. ❌ C: anche le Promise girano nel main thread tramite microtask queue.

5/22 · TECNICA · profilo · INF-0050

In RSA, quando il mittente crea una firma digitale, cifra l'hash del documento con:

[A] La propria chiave pubblica
[B] La chiave pubblica del destinatario
[C] La propria chiave privata
[D] La chiave privata del destinatario
Spiegazione

✅ C. La firma digitale = hash del documento cifrato con la CHIAVE PRIVATA del mittente. Solo il mittente conosce la propria chiave privata → autenticazione. Il destinatario verifica decifrando con la chiave PUBBLICA del mittente e confrontando con l'hash ricalcolato. ❌ A: cifrare l'hash con la propria chiave pubblica non darebbe autenticazione (chiunque ha la chiave pubblica). ❌ B: cifrare con la chiave pubblica del destinatario è la cifratura per RISERVATEZZA, non firma. ❌ D: la chiave privata del destinatario è segreta e usata per decifrare messaggi ricevuti.

6/22 · TECNICA · profilo · INF-0051

Per verificare la firma digitale apposta da Mario su un documento, il destinatario deve usare:

[A] La propria chiave privata
[B] La chiave privata di Mario
[C] La propria chiave pubblica
[D] La chiave pubblica di Mario
Spiegazione

✅ D. Per verificare la firma di Mario si usa la CHIAVE PUBBLICA di Mario (pubblica = accessibile a tutti). Il destinatario: 1) decifra la firma con la chiave pubblica di Mario → ottiene l'hash originale; 2) calcola l'hash del documento ricevuto; 3) se i due hash coincidono, la firma è valida. ❌ A: la chiave privata del destinatario serve per decifrare messaggi cifrati per lui. ❌ B: la chiave privata di Mario è segreta, non accessibile al destinatario. ❌ C: la propria chiave pubblica non ha relazione con la firma di Mario.

7/22 · TECNICA · profilo · INF-0052

Per garantire la riservatezza di un messaggio inviato a Sara, il mittente deve cifrarlo con:

[A] La propria chiave privata
[B] La propria chiave pubblica
[C] La chiave pubblica di Sara
[D] La chiave privata di Sara
Spiegazione

✅ C. Per riservatezza: si cifra con la CHIAVE PUBBLICA del destinatario (Sara). Solo Sara, con la propria chiave privata, potrà decifrarlo. ❌ A: cifrare con la propria chiave privata crea una firma (autenticazione), non riservatezza. ❌ B: cifrare con la propria chiave pubblica sarebbe decifrabile solo con la propria chiave privata — inutile per la comunicazione. ❌ D: la chiave privata di Sara è segreta e non accessibile al mittente.

8/22 · TECNICA · profilo · INF-0053

Un array RAID 5 è composto da 7 dischi da 4TB ciascuno. Qual è la capacità netta utilizzabile?

[A] 28TB
[B] 24TB
[C] 20TB
[D] 16TB
Spiegazione

✅ B (24TB). RAID 5: capacità = (N-1) × dimensione_disco = (7-1) × 4TB = 6 × 4TB = 24TB. Un disco equivalente è usato per la parità (distribuita tra tutti). ❌ A (28TB): sarebbe la capacità totale senza ridondanza (RAID 0). ❌ C (20TB): sarebbe (N-2)×4=20 → formula del RAID 6. ❌ D (16TB): formula errata.

9/22 · TECNICA · profilo · INF-0054

Un array RAID 6 con 8 dischi da 2TB ha capacità netta di:

[A] 16TB
[B] 14TB
[C] 12TB
[D] 10TB
Spiegazione

✅ C (12TB). RAID 6: doppia parità → capacità = (N-2) × dimensione = (8-2) × 2TB = 6 × 2TB = 12TB. Tollera la perdita di 2 dischi contemporaneamente. ❌ A (16TB): è la capacità totale (RAID 0). ❌ B (14TB): formula (N-1) corretta per RAID 5, non RAID 6. ❌ D (10TB): formula errata.

10/22 · TECNICA · profilo · INF-0055

RAID 1 con 4 dischi da 1TB: capacità netta e numero di guasti tollerati?

[A] 4TB, tollera 1 guasto
[B] 2TB, tollera 1 guasto
[C] 1TB, tollera 3 guasti
[D] 1TB, tollera 2 guasti
Spiegazione

✅ C. RAID 1 puro (mirroring) con 4 dischi: tutti i dischi contengono gli stessi dati → capacità = 1 disco = 1TB. Può perdere fino a 3 dischi su 4 (rimane almeno 1 copia). ❌ A (4TB): è la capacità totale senza ridondanza. ❌ B: RAID 1 con 2 dischi avrebbe 1TB e tollera 1 guasto; con 4 dischi la capacità rimane 1TB ma la tolleranza è maggiore. ❌ D: con 4 dischi in mirror si tollerano 3 guasti (non 2).

11/22 · TECNICA · profilo · INF-0056

RAID 10 (1+0) combina:

[A] Parità distribuita e striping
[B] Mirroring e striping: i dati sono in strisce su coppie di dischi in mirror
[C] Solo mirroring senza striping
[D] Solo striping con parità singola
Spiegazione

✅ B. RAID 10 = RAID 1 (mirroring) + RAID 0 (striping). I dati sono distribuiti in stripe su più coppie di dischi specchiati. Con 4 dischi: capacità = 50% del totale, tollera la perdita di 1 disco per ogni coppia. ❌ A: la parità distribuita è RAID 5. ❌ C: solo mirroring è RAID 1. ❌ D: striping con parità singola è RAID 5.

12/22 · TECNICA · profilo · INF-0057

Il livello di isolamento SQL REPEATABLE READ previene:

[A] Solo dirty read
[B] Dirty read e non-repeatable read, ma NON i phantom read
[C] Dirty read, non-repeatable read e phantom read
[D] Solo phantom read
Spiegazione

✅ B. REPEATABLE READ garantisce che le righe lette nella transazione non cambino se rilette → previene dirty read e non-repeatable read. NON previene i phantom read (nuove righe inserite da altre transazioni che appaiono in query successive con predicati di range). ❌ A: solo dirty read è READ COMMITTED. ❌ C: tutti e tre sono prevenuti da SERIALIZABLE (non da REPEATABLE READ). ❌ D: solo phantom read non corrisponde a nessun livello standard.

13/22 · TECNICA · profilo · INF-0058

Il livello READ COMMITTED (default in molti DBMS) previene:

[A] Dirty read, non-repeatable read e phantom read
[B] Solo dirty read
[C] Solo non-repeatable read
[D] Dirty read e phantom read, ma non non-repeatable read
Spiegazione

✅ B. READ COMMITTED previene SOLO i dirty read (lettura di dati non ancora committati). Non previene: non-repeatable read (stessa riga riletta dà valori diversi) né phantom read (nuove righe appaiono). ❌ A: tutti e tre prevenuti = SERIALIZABLE. ❌ C: non-repeatable read non è prevenuto da READ COMMITTED. ❌ D: i phantom read non sono prevenuti da READ COMMITTED.

14/22 · TECNICA · profilo · INF-0059

Un phantom read si verifica quando:

[A] Una transazione legge dati modificati ma non ancora committati da un'altra
[B] La stessa riga, riletta nella stessa transazione, restituisce un valore diverso dopo il commit di un'altra transazione
[C] Una query che usa un predicato di range restituisce righe diverse (nuove o eliminate) se eseguita due volte nella stessa transazione
[D] Un indice non aggiornato causa risultati obsoleti
Spiegazione

✅ C. Phantom read = nuove righe (o righe eliminate) inserite/cancellate da altre transazioni compaiono (o scompaiono) tra due esecuzioni della stessa query con predicato (es. WHERE età > 30). ❌ A: è la definizione di dirty read. ❌ B: è la definizione di non-repeatable read (stessa riga, valore diverso). ❌ D: gli indici obsoleti sono un problema di implementazione, non un'anomalia di isolamento.

15/22 · TECNICA · profilo · INF-0060

In un'architettura a strati (layered), ogni strato:

[A] Può accedere direttamente a qualsiasi altro strato per massimizzare le prestazioni
[B] Dipende unicamente dallo strato immediatamente sottostante e offre servizi allo strato sovrastante
[C] Comunica bidirezionalmente con tutti gli altri strati
[D] È completamente indipendente e non conosce gli altri strati
Spiegazione

✅ B. Il principio fondamentale del layered architecture: ogni strato usa i servizi del layer SOTTO e espone servizi al layer SOPRA. La dipendenza è unidirezionale verso il basso. Questo garantisce separazione delle responsabilità e sostituibilità dei layer. ❌ A: l'accesso arbitrario tra strati elimina i vantaggi del layering. ❌ C: la comunicazione bidirezionale con TUTTI violerebbe l'incapsulamento. ❌ D: l'indipendenza totale non è corretta — ogni layer dipende da quello sotto.

16/22 · TECNICA · profilo · INF-0061

L'algoritmo SHA-256 produce un digest di:

[A] 128 bit (16 byte)
[B] 160 bit (20 byte)
[C] 256 bit (32 byte)
[D] 512 bit (64 byte)
Spiegazione

✅ C. SHA-256 (SHA-2 family) produce sempre un hash di 256 bit = 32 byte. ❌ A (128 bit): è MD5 (sconsigliato, vulnerabile a collisioni). ❌ B (160 bit): è SHA-1 (deprecato). ❌ D (512 bit): è SHA-512 (stessa famiglia SHA-2 ma digest più lungo).

17/22 · TECNICA · profilo · INF-0062

In un'infrastruttura PKI, la catena di certificazione (chain of trust) serve a:

[A] Cifrare i messaggi end-to-end tra client e server
[B] Verificare che un certificato sia firmato da una CA radice fidata, passando per CA intermedie
[C] Distribuire le chiavi private ai client in modo sicuro
[D] Rinnovare automaticamente i certificati scaduti
Spiegazione

✅ B. La catena di fiducia PKI: il certificato del server è firmato da una CA intermedia, che è firmata dalla CA radice (root CA). Il client verifica la catena risalendo fino alla root CA che ha in memoria come fidata. ❌ A: la PKI gestisce l'autenticazione/identità; la cifratura usa le chiavi derivate dall'handshake TLS. ❌ C: le chiavi private NON vengono mai distribuite dalla CA — restano sempre sul proprietario. ❌ D: il rinnovo è un processo separato (ACME, SCEP).

18/22 · TECNICA · profilo · INF-0063

L'handshake TLS 1.3 (rispetto a TLS 1.2) è migliorato perché:

[A] Usa cifratura simmetrica invece di asimmetrica
[B] Richiede solo 1 round-trip invece di 2 per stabilire la connessione sicura
[C] Elimina completamente l'uso dei certificati X.509
[D] Usa solo algoritmi MD5 per la velocità
Spiegazione

✅ B. TLS 1.3 riduce a 1 round-trip (1-RTT) l'handshake rispetto ai 2 di TLS 1.2, con «0-RTT» per le sessioni ripristinate. Elimina algoritmi deboli (RSA key exchange, RC4, MD5/SHA-1) e usa solo suite sicure (ECDHE, AES-GCM, ChaCha20). ❌ A: TLS usa sempre sia asimmetrica (key exchange) sia simmetrica (dati). ❌ C: i certificati X.509 rimangono fondamentali per l'autenticazione. ❌ D: MD5 è eliminato da TLS 1.3, non adottato.

19/22 · TECNICA · profilo · INF-0064

Un server restituisce HTTP 401. Questo indica:

[A] L'utente è autenticato ma non ha i permessi necessari (autorizzazione negata)
[B] La risorsa non esiste
[C] Il client non è autenticato o le credenziali fornite sono errate
[D] Il server ha un errore interno
Spiegazione

✅ C. HTTP 401 (Unauthorized) = manca l'autenticazione o le credenziali sono errate. Il client deve autenticarsi. ❌ A: l'autenticato senza permessi riceve 403 (Forbidden). ❌ B: risorsa inesistente = 404 Not Found. ❌ D: errore interno server = 500 Internal Server Error.

20/22 · TECNICA · profilo · INF-0065

Il principio REST di «statelessness» significa che:

[A] Il server non salva mai dati nel database
[B] Ogni richiesta HTTP deve contenere tutte le informazioni necessarie per essere elaborata, senza dipendere da sessioni server-side
[C] Il client non può salvare nulla in locale (cookie, localStorage)
[D] Le risorse REST non hanno stato (sono immutabili)
Spiegazione

✅ B. Stateless = il server non mantiene stato della sessione tra richieste. Ogni richiesta è autosufficiente (include token di autenticazione, parametri, etc.). Questo facilita scalabilità orizzontale. ❌ A: il DB è separato dallo stato della sessione. ❌ C: il client può usare cookie/localStorage; il vincolo riguarda il server. ❌ D: le risorse REST hanno stato (possono essere modificate via PUT/PATCH/DELETE).

21/22 · TECNICA · profilo · INF-0066

Quale query SQL è VULNERABILE a SQL injection?

[A] SELECT * FROM utenti WHERE id = ? (con prepared statement)
[B] SELECT * FROM utenti WHERE nome = 'nomeUtente' (concatenazione diretta)
[C] SELECT * FROM utenti WHERE email = :email (named parameter)
[D] SELECT * FROM utenti WHERE id = $1 (parametro posizionale PostgreSQL)
Spiegazione

✅ B. La concatenazione diretta dell'input utente nella stringa SQL è la causa classica di SQL injection. Un input come `' OR '1'='1` modifica la logica della query. ❌ A, C, D: tutte usano parametri — il DBMS interpreta il valore dell'utente come dato puro, mai come codice SQL. Questo è il modo corretto (prepared statements / parametrized queries).

22/22 · TECNICA · profilo · INF-0067

Un attacco XSS (Cross-Site Scripting) stored si differisce dal reflected perché:

[A] Il reflected è più pericoloso del stored
[B] Nel stored, il codice malevolo è salvato nel DB del sito e colpisce chiunque visiti la pagina infetta; nel reflected il payload è nell'URL e colpisce solo chi clicca il link malevolo
[C] Nel stored l'attaccante deve avere accesso fisico al server
[D] Il reflected cifra il payload, lo stored no
Spiegazione

✅ B. XSS stored (persistente): lo script malevolo è salvato nel DB (es. in un commento) e viene servito a tutti gli utenti che visitano la pagina → più pericoloso. XSS reflected: il payload è nel request (URL, form) e il server lo «rimanda» (reflect) nella risposta → colpisce solo chi clicca il link malevolo. ❌ A: è l'opposto. ❌ C: non è richiesto accesso fisico. ❌ D: né l'uno né l'altro cifra il payload.