Pensa a dove potrebbero essere utilizzati i dati, poiché ciò dovrebbe aiutare a definire la convalida.
Puoi andar via senza convalida al momento dell'iscrizione, tuttavia qualsiasi cosa con un significato speciale quando si utilizza una funzione sink dovrebbe essere scartata o codificata prima dell'uso. La convalida al momento dell'iscrizione è utile se si desidera consentire all'utente di correggere errori.
L'igienizzazione deve essere eseguita il più tardi possibile. Ad esempio, la conversione in caratteri HTML dovrebbe essere eseguita sull'output piuttosto che sull'input. Il motivo è che se decidi di utilizzare i dati in un contesto diverso, puoi convertirli a questo punto direttamente dal valore dell'utente (ad esempio testo normale, JSON, ecc.).
Non fidarti mai dell'input dell'utente. Convalidare tutto prima dell'uso e cercare di riflettere sui pericoli derivanti dall'invio di valori imprevisti dal proprio modulo, ad esempio se un determinato valore è stato forgiato o se il valore non viene codificato quando viene utilizzato in un contesto con un significato speciale (ad esempio SQL economico).