Che cosa sono i dati non attendibili

0

Stavo leggendo le basi della prevenzione XSS su owasp xss rules . Ma il problema è piuttosto astratto. Il termine "dati non attendibili" è spesso usato. Ogni regola ricorda di non inserire dati non verificati in determinati punti del contenuto della pagina come:

Commenti HTML

script

nomi degli attributi

nomi di tag e così via ...

Ma quali sono i dati non attendibili? Per esempio. sto inviando dati (nome utente) dal lato server che è stato estratto dal database. Questi dati diventeranno dati attendibili?

es. l'utente invia il modulo e invia il valore di input del testo o il client effettua qualsiasi richiesta (con parametri o meno). Si tratta di dati non attendibili?

    
posta Max Bender 08.10.2017 - 22:10
fonte

3 risposte

4

Tutto ciò che l'utente immette (o può controllare il valore di) non è affidabile. Filtra e convalida sempre.

Qualsiasi cosa generata dinamicamente che possa consumare dati controllabili dall'utente non è affidabile. Sempre igienizzato

Fondamentalmente qualsiasi cosa è ritenuta non affidabile se non si è controllati al 100%.

i'm sending data (user name) from the serverside that has been extracted from database. Is this data going to be trusted data?

No, applica le regole precedenti e vedrai se il nome utente originale non è stato validato correttamente e / o se l'output non è stato disinfettato dal nome utente, potrebbe essere <scrip>alert('xss')</script> fondamentalmente un valore xss memorizzato o qualsiasi altro valore dell'utente o cattivo attore vuole.

    
risposta data 08.10.2017 - 22:22
fonte
2

I dati non attendibili sono dati che arrivano attraverso un limite di affidabilità - nelle applicazioni Web che più spesso indicano dati di cui l'utente aveva il controllo (dati che provengono dal client). Ma questo può anche essere un dato che originariamente proveniva da una fonte non attendibile (come il nome utente) che potresti aver memorizzato, o dati provenienti da un altro sistema - non è ancora sicuro. I dati possono essere disinfettati tramite la whitelist di convalida, il modo più sicuro è quello di convalidare un elenco di valori fisso. Puoi convalidare una whitelist di caratteri ma devi essere molto restrittivo poiché spesso non sai dove verranno utilizzati i dati - caratteri diversi possono essere usati per le iniezioni HTML, javascript, SQL, OS, REST.

È generalmente più semplice e sicuro trattare tutti i dati come non attendibili e validarli e codificarli correttamente per l'output corretto.

    
risposta data 08.10.2017 - 23:44
fonte
0

"dati non attendibili" indica cose diverse in contesti diversi.

Nel contesto delle regole di owasp si riferisce al passaggio di dati direttamente dall'input all'output senza garantire che la rappresentazione dei dati è appropriata per il canale di output.

Nel contesto che hai fornito, i dati potrebbero essere stati precedentemente in una forma sicura da inviare al database, ma ciò non significa che sia in una forma sicura da inviare a un browser? In un file pdf? Per riscrivere in un database?

Mentre nella maggior parte dei casi è sufficiente sapere che i dati sono codificati in modo tale che non possano avere effetti collaterali sul supporto di output, in molti casi la "fiducia" dipende spesso dalle informazioni nei dati - non solo la sua rappresentazione È facile creare certificati, numeri di conto, dosaggi ... ma la fiducia è garantire che l'accuratezza e la responsabilità per le informazioni siano mantenute.

    
risposta data 29.10.2017 - 15:58
fonte

Leggi altre domande sui tag