Qual è la differenza tra escaping, filtering, validation e sanitizing?

9

Un'applicazione deve gestire attentamente l'input e l'output di dati non attendibili. A seconda dei casi, i valori devono essere con escape , filtrati , validati o disinfettati . Spesso sembra che ci sia un uso sciatto e intercambiabile di questi termini, anche se ovviamente non sono tutti equivalenti.

Sto cercando una panoramica chiarificatrice sulle differenze e sull'uso corretto in un contesto di sicurezza.

    
posta Arminius 29.11.2016 - 21:24
fonte

1 risposta

11

La fuoriuscita . Convertire un carattere di controllo nella sua sequenza di escape. Ad esempio, un simbolo < può essere convertito in &lt; in modo che i caratteri che seguono < non vengano interpretati come tag XML anziché contenuto XML.

Filtri . Come l'escape, ma invece di sostituire il carattere di controllo, viene semplicemente rimosso.

Convalidato. Confronto di un input con una lista bianca o un'espressione regolare per rilevare caratteri di controllo o altre sequenze di caratteri che potrebbero innescare un comportamento non autorizzato. Ad esempio, un numero di account inserito da un utente potrebbe essere convalidato rispetto a un elenco di numeri di account noti per essere associati all'utente.

Sanitized. Una combinazione di escaping, filtraggio e convalida che garantisce che un input per una funzione di sistema non inneschi un comportamento inaspettato e non autorizzato.

    
risposta data 29.11.2016 - 21:31
fonte

Leggi altre domande sui tag