I due rischi principali di un sistema come questo sono:
Il rischio di SQL Injection è mitigato dall'uso di query parametrizzate . Ciò garantisce che i valori dei dati inseriti nel database possano essere interpretati solo come dati e non da parte della query da parte di un utente malintenzionato che sfugge al di fuori del contesto.
L'XSS è impedito dalla corretta uscita in uscita . Ciò impedisce al browser di interpretare qualsiasi markup o codice come script e renderà invece la rappresentazione visiva del markup. Questo dovrebbe essere fatto dalla tua applicazione sull'output dei dati al browser, e di solito non dovrebbe essere memorizzato in questo formato. Questo perché se in un secondo momento dovessi inviare i dati in qualsiasi altro formato (ad es. JSON o testo normale) le cose possono complicarsi perché dovrai prima convertirle in testo normale prima di ricodificarle e questo è dove gli errori possono facilmente accadere per lasciare vulnerabile la tua applicazione.