Esiste una linea guida standard su come dovrebbe apparire l'input igienizzato nel messaggio di errore?

0

Supponiamo che la tua app web stia disinfettando l'input e visualizzando all'utente l'input errato. Prima che la misura XSS fosse messa in atto, l'app web sputava script dannosi così come sono. Ad esempio Valore indirizzo errato: <script>bad script goes here </script>

Ora, dopo un'attenta produzione di disinfezione potrebbe essere qualcosa del genere. Cattivo indirizzo: input igienizzato. Se l'input fosse, diciamo, non script come! @ # $ Street, restituirebbe l'indirizzo errato:! @ # $

Pensi che l'uso di parole sterilizzate sia troppo ovvio per la stringa di output che è dannosa. Immagino che gli utenti normali non lo vedranno. Ma i cattivi sono i soli che vedranno sterilizzati. Oppure l'app non dovrebbe dire nulla se sanifica l'input. O dovrebbe sostituire alcuni dei tag di script non validi con qualcosa di diverso. Qual è la migliore pratica del settore più nota qui?

    
posta DoodleKana 20.02.2015 - 23:37
fonte

2 risposte

3

Qualsiasi messaggio di errore non dovrebbe fornire informazioni all'attaccante se non il tentativo di fallire. Esempio: un errore di password / nome utente dovrebbe indicare che il tentativo è stato negativo, non se il nome utente è errato, o la password, o entrambi. In tal caso, tali informazioni potrebbero essere utilizzabili da un utente malintenzionato nel tentativo di eludere le misure di sicurezza. Qualcosa sulla falsariga di: "Indirizzo non valido" o "Indirizzo non trovato" nel caso di un campo Indirizzo sarebbe più che sufficiente. Lo stesso vale per qualsiasi altro campo.

Ora, sono incerto sul motivo per cui dovresti riesporre le informazioni dannose a chiunque tenti di inserire codice dannoso nel tuo sistema. Svela sicuramente ciò che accade dietro le quinte, invece di nascondere i meccanismi interni del tuo sistema all'attaccante.

Più vago è il migliore.

    
risposta data 21.02.2015 - 00:12
fonte
1

Come ha detto Desthro, un messaggio di errore non dovrebbe fornire troppe informazioni a un utente malintenzionato. Lo studio consigliato consiste nel visualizzare un messaggio di errore statico che non include nessuno dei dati forniti dall'utente. Il tuo messaggio di errore non dovrebbe indicare più di "Caratteri non validi nell'indirizzo". Se vuoi essere più utile, potresti essere un po 'più specifico e dire loro che "L'indirizzo deve contenere solo lettere, numeri e trattini" (o qualunque sia il tuo schema.)

Se si visualizza uno degli input nell'output, si rischia la possibilità di creare una sorta di attacco XSS inatteso, il tipo che si sta tentando di impedire. E non offre ai tuoi utenti legittimi alcun vantaggio aggiuntivo.

    
risposta data 21.02.2015 - 06:45
fonte

Leggi altre domande sui tag