Sicurezza e privacy

Quando crei un modulo, utilizzi i dati utente. Il tuo principale problema è garantire che i dati utente rimangano privati e vengano trasferiti in modo sicuro. Diamo un'occhiata a cosa si può fare.

Assicurati che il modulo sia sicuro

Come primo passaggio, assicurati di richiedere il minor numero possibile di dati. Non chiedere dati che non ti servono e chiedi sempre se hai bisogno di tutti i dati richiesti. Meno dati significa meno rischi, meno costi e meno responsabilità. Inoltre, la riduzione del numero di campi in un modulo lo rende meno complesso, più facile da compilare e può ridurre i tassi di abbandono.

Utilizza sempre HTTPS, in particolare per le pagine che includono un modulo. Con HTTPS, i dati vengono criptati quando provengono dal server e quando tornano al server.

Supponiamo che tu stia seduto al bar e usi la rete Wi-Fi pubblica. Per effettuare un acquisto, apri un sito di e-commerce e inserisci i dati della carta di credito. Se il sito web utilizza HTTP, chiunque (con le competenze necessarie) sulla stessa rete Wi-Fi pubblica potrebbe vedere i dati della tua carta di credito. Se il sito web utilizza HTTPS, i dati sono criptati e pertanto protetti da chiunque tenti di accedervi.

Sul tuo sito, dovresti inoltre assicurarti di reindirizzare le richieste HTTP a HTTPS. Scopri di più su come reindirizzare tutto il traffico a HTTPS.

Aiuta gli utenti a mantenere privati i propri dati

Nel primo modulo, hai appreso due possibili modi per trasferire i dati: utilizzando una richiesta GET e una richiesta POST.

Con una richiesta GET, i dati del modulo vengono inclusi come stringa di query nell'URL della richiesta. Se invii un modulo che utilizza una richiesta GET, il browser aggiunge alla cronologia di navigazione l'URL della richiesta, inclusi i dati del modulo. È una soluzione pratica se vuoi cercare i moduli inviati in passato, ad esempio un modulo di ricerca. Per niente utile, se vengono inviati dati sensibili e chiunque abbia accesso alla cronologia del browser o alla rete locale può vedere queste informazioni.

Usa le richieste POST per ogni modulo in cui è possibile inviare dati personali o sensibili. In questo modo, i dati sono visibili solo allo script di backend che li elabora.

Cosa comporta il salvataggio e l'elaborazione dei dati personali direttamente nel browser? Potresti utilizzare lo spazio di archiviazione del client, ad esempio localStorage, per archiviare dati personali nel browser. Per quanto riguarda la privacy, questo non è che ideale. Anche in questo caso, chiunque abbia accesso al tuo browser può leggere queste informazioni. Dovresti archiviare solo i valori criptati per i dati personali.

Assicurati che gli utenti possano registrarsi e accedere in sicurezza

L'autenticazione degli account utente è un problema complesso in termini di privacy e sicurezza. È preferibile utilizzare un provider di identità di terze parti, invece di creare un proprio sistema di autenticazione sicuro.

Scopri di più sulle best practice per l'autenticazione degli account e la gestione delle password.

Aiutare gli utenti ad accedere ai loro dati personali

Molte regioni hanno leggi e normative in materia di privacy e protezione dei dati, tra cui il CCPA in California e l'PDPA in India. Ogni sito web disponibile nell'Unione Europea (UE) deve rispettare il Regolamento generale sulla protezione dei dati (GDPR), anche se non si trova nell'UE.

Il GDPR definisce le linee guida per la raccolta e il trattamento delle informazioni personali delle persone che vivono nell’UE. È necessario il consenso al trattamento dei dati personali, gli utenti possono richiedere informazioni personali che memorizzi in qualsiasi momento e tu devi annunciare ufficialmente la fuga di dati. Un vantaggio per l'utente, che contribuisce a garantire il rispetto della sua privacy. Scopri di più sul GDPR.

Assicurati che gli utenti sappiano come prevedi di trattare i dati personali. La trasparenza è fondamentale per avere fiducia. Gli utenti devono essere sempre in grado di accedere, modificare ed eliminare tutti i dati salvati.

Assicurarsi che gli utenti possano aggiornare i propri dati personali

Semplifica l'aggiornamento dei dati personali per gli utenti, tra cui password, indirizzi email e nomi utente. Inviare notifiche agli utenti in merito alle modifiche ai loro dati personali archiviati e assicurati che gli utenti possano revocare le modifiche. Ad esempio, puoi inviare un'email all'indirizzo precedente e a quello nuovo dopo che gli utenti hanno cambiato il proprio indirizzo email.

Semplificare per gli utenti l'eliminazione del proprio account, inclusi tutti i dati associati, e, ove pertinente, il download dei dati. L'eliminazione degli account è un requisito legale in alcune regioni.

Richiedi un passaggio di autenticazione aggiuntivo, ad esempio il reinserimento della password corrente, per visualizzare o modificare le informazioni personali sul tuo sito.

Scopri di più: Best practice sulla privacy delle applicazioni web.

Assicurati che tutti i dati siano in buone condizioni

In un modulo precedente hai imparato a conoscere la convalida sul frontend. La convalida del frontend è importante, ma gli utenti potrebbero comunque essere in grado di inviare dati non validi. Come passaggio successivo, devi anche convalidare i dati nel backend prima di salvarli nel database. Ciò garantisce che nel database non vengano salvati dati non validi.

La convalida contribuisce a garantire che il formato dei dati sia valido, ma non dovresti comunque considerare attendibili i dati inseriti dagli utenti. Come puoi esportare in modo sicuro i dati? Per prevenire il cross-site scripting (XSS) e garantire che tutti i dati possano essere inclusi in sicurezza nel codice HTML, devi eliminare i dati prima di eseguirne l'output.

Scopri di più sulla sanitizzazione dei dati prima dell'output e, ove possibile, utilizza l'API Sanitizer.

Assicurati che tutti i contenuti inviati provengano da persone reali

Per proteggere i tuoi dati, hai a disposizione varie opzioni per impedire l'invio di spam da parte dei bot.

La prima opzione è utilizzare un servizio come reCAPTCHA, per distinguere tra persone reali e bot. Ciò richiede l'inclusione di uno snippet JavaScript nella pagina e l'aggiunta di attributi supplementari al pulsante Invia.

reCAPTCHA esegue vari controlli per capire se sei una persona. Ad esempio, potrebbe chiederti di identificare le immagini. I software automatici, come i bot, non sono in grado di risolvere queste sfide e non possono inviare il modulo.

Un vaso di miele

Un'altra opzione consiste nell'utilizzare un cosiddetto "honeypot", ovvero un campo del modulo visivamente nascosto. Gli esseri umani non vedranno un campo di miele, ma i bot lo riempiranno. Sul backend, lo script di elaborazione può verificare se il campo è stato completato. In tal caso, probabilmente l'invio proveniva da un bot e puoi ignorarlo.

Esistono anche servizi come Akismet, che possono aiutarti con la protezione antispam. Il filtro Akismet funziona combinando le informazioni sullo spam acquisito su tutti i siti partecipanti, utilizzando quindi queste regole per bloccare lo spam in futuro. L'akismet è trasparente per l'utente e rileva la maggior parte dello spam.

Verifica le tue conoscenze

Verifica le tue conoscenze in materia di sicurezza e privacy

Qual è il metodo preferito per trasferire i dati personali utilizzando i moduli?

Una richiesta POST.
🎉
Un piccione viaggiatore.
Riprova.
Una richiesta GET.
Riprova.
HTTPS
Riprova.

Come puoi prevenire lo spam?

CAPTCHA
🎉
Un campo modulo Honeypot.
🎉
Servizi di spam.
🎉
Servire solo forme vegetariane.
Riprova.

Risorse