Prevenire un rutto e un'intercettazione

4

Ho creato un'API di autenticazione per gestire le sessioni utente e i lavori. Per accedere a un utente, l'utente invia le proprie credenziali al mio endpoint API e restituisce "true" o "false" in base al proprio accesso. Recentemente ho ricevuto un rapporto sul problema che affermava che usando "un rutto e un'intercettazione", la risposta di "falso" può essere cambiata in "vera", ignorando un tentativo di accesso fallito e ingannando il browser nel pensare che l'utente abbia effettuato l'accesso.

Sarò onesto: non ho idea di come impedirlo. E se non riesco a impedirlo, c'è un modo migliore per autenticare gli utenti?

    
posta shane 16.12.2017 - 20:59
fonte

1 risposta

5

Potresti chiedere al giornalista di spiegare cosa pensano che siano le implicazioni sulla sicurezza.

Truccare il browser in modo che mostri un login riuscito tramite una risposta API forgiata localmente non nuoce a meno che l'utente non possa usarlo per ignorare effettivamente l'autenticazione o accedere alle informazioni riservate. Un attacco dovrebbe ingannare il server nel presupposto che l'autenticazione sia riuscita, non il client.

I have no clue how to prevent this.

Non puoi impedire a un utente di manomettere i dati che hanno lasciato il tuo server. Non hai alcun controllo sul client (il loro browser) e non puoi impedirgli di usare Burp ( o la console di sviluppo per quella materia ) per riscrivere le richieste e le risposte in modo che l'applicazione web non avesse intenzione.

And if I cannot prevent it, is there a better way to be authenticating users?

Come Marc ha delineato, un possibile approccio consiste nel fare in modo che l'endpoint dell'API restituisca un token di sessione una volta che l'autenticazione ha avuto successo. Il client utilizzerà quindi questo token per effettuare ulteriori richieste autenticate.

    
risposta data 16.12.2017 - 21:14
fonte

Leggi altre domande sui tag