React / Next.js

React Sicurezza & Best Practices

Prevenzione XSS, protezione CSRF, dangerouslySetInnerHTML, Content Security Policy, HTTPS, sanitizzazione

22 domande da colloquio·
Senior
1

Cos'è un attacco XSS (Cross-Site Scripting)?

Risposta

Un attacco XSS consiste nell'iniettare codice JavaScript malevolo in un'applicazione web per eseguirlo nel browser di altri utenti. L'attaccante sfrutta falle di validazione o di escaping per rubare cookie, token di sessione o eseguire azioni non autorizzate. React offre protezione nativa escapando automaticamente i valori JSX, ma le vulnerabilità persistono con dangerouslySetInnerHTML o la manipolazione diretta del DOM.

2

Come protegge React dagli attacchi XSS per impostazione predefinita?

Risposta

React fa l'escape automatico di tutti i valori inseriti tramite JSX convertendoli in testo semplice prima del rendering. Questa protezione impedisce l'esecuzione di script malevoli anche se codice HTML viene iniettato nei dati. A differenza di innerHTML che interpreta ed esegue HTML, React tratta i tag come testo semplice, rendendo impossibile l'iniezione di JavaScript malevolo tramite props o state standard.

3

Perché dangerouslySetInnerHTML è considerato pericoloso in React?

Risposta

Questa proprietà aggira la protezione XSS nativa di React inserendo HTML grezzo direttamente nel DOM senza escape. Se il contenuto proviene da una fonte non attendibile o da un'API esterna, può contenere JavaScript malevolo che verrà eseguito. Il nome esplicito dangerouslySetInnerHTML forza gli sviluppatori a riconoscere consapevolmente il rischio di sicurezza e a implementare una sanitizzazione appropriata con librerie come DOMPurify.

4

Qual è la differenza principale tra un attacco XSS Stored e Reflected?

5

Quale approccio dovrebbe essere preferito per visualizzare HTML da un'API esterna in React?

+19 domande da colloquio

Padroneggia React / Next.js per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis