Non ti fidi del cliente?

2

Sono uno sviluppatore web, e ho cercato di imparare un po 'sulla sicurezza, e la cosa che sembra essere il principale principio è solo quella di fidarmi del client con il minimo possibile. È un'idea corretta? Per quali situazioni la regola non dovrebbe essere / non essere corretta?

    
posta thesecretmaster 13.11.2015 - 00:26
fonte

3 risposte

1

È un principio importante, ma non l'unico.

Diciamo che stai scrivendo un processore di pagamenti, in particolare funzioni per inviare denaro. Il codice di back-end si aspetta determinati parametri per una transazione, forse il numero dell'account di origine (memorizzato in un campo html nascosto), il numero dell'account di destinazione e un importo in dollari. Quando viene chiamata questa funzione, genera il numero di conto in una query SQL per ottenere i dettagli dell'account. Le informazioni sull'account di questa ricerca vengono inviate al browser su una pagina di conferma.

Dove può l'input dell'utente causare problemi qui? Prima di tutto, cosa succede se l'utente inserisce un importo negativo in dollari? Cosa succede se l'utente cambia il campo nascosto in un numero di account che non è il loro? Cosa fare se il campo del numero di conto contiene comandi e comandi di escape (SQL injection) o codice JavaScript (XSS)? Questo è uno scenarioio molto semplice, ma c'è così tanto che può andare storto. Troppa fiducia nell'utente può consentire l'elusione della logica aziendale o dei controlli di accesso previsti, nonché l'esposizione a vulnerabilità di iniezione.

Non fidarti mai dell'utente; non c'è nulla sul lato client che possa impedire loro di immettere input pericolosi e inaspettati. Convalidare sempre l'input ed eseguire controlli sul lato server su tutto.

    
risposta data 13.11.2015 - 01:23
fonte
0

Il cliente è spesso la nemesi. Ma soprattutto clienti non validi / falsi. La soluzione potrebbe essere quella di imparare a fidarsi di un cliente piuttosto che classificare tutti i client nello stesso modo.

    
risposta data 13.11.2015 - 01:45
fonte
0

Tuttavia non è consigliabile fare affidamento sulla convalida lato client in quanto può essere aggirata da un utente con l'uso di un proxy Web. Il traffico è anche incline al MITM e può essere manomesso da qualcun altro diverso dall'Utente.

Come ti è stato chiesto quando puoi rilassare questa regola consapevolmente accettando il rischio, può accadere quando la comunicazione avviene con una terza parte attendibile. Puoi comunque controllare ORIGIN e DOMAIN per sicurezza.

Una situazione può essere quando si usa l'handshake SSL bidirezionale per autenticarsi, si mantengono i registri di controllo, il servizio Web considera gli input come testo non comandi e tutte le comunicazioni avvengono su canale dedicato / protetto, ci si può rilassare un po ' .

    
risposta data 13.11.2015 - 00:48
fonte

Leggi altre domande sui tag