Come gestire correttamente gli errori non autorizzati nelle SPA [chiuso]

1

Per evitare che l'URL indovini gli utenti non autorizzati, restituirò un errore 404 anche se l'URL esiste. È meglio restituire sempre una pagina di errore 404 anche se la chiamata è a un'API ?? o è meglio restituire un JSON con un 404 in caso di chiamata API e ?? Cosa suggerisci ??

    
posta DGomez 05.12.2016 - 19:47
fonte

2 risposte

2

È piuttosto più amichevole restituire JSON se l'API specifica che restituisce JSON. Se non specifica in entrambi i casi, probabilmente non importa molto.

In onestà, generalmente preferisco restituire qualcosa di utile e significativo. Per le persone, vorrei reindirizzare alla pagina di accesso. Per un'API, vorrei restituire un messaggio non autorizzato. Restituire un 404 quando il risultato non manca non è di grande aiuto. Naturalmente, questa è più una questione di usabilità che di sicurezza.

Se vuoi che la tua app sia utilizzabile, restituisci i dati corretti / utili a meno che non perdano qualcosa di critico. Se vuoi che la tua app sia ultra-sicura ma meno utilizzabile, meglio non restituire neanche un 404, restituisci invece i dati vuoti.

    
risposta data 05.12.2016 - 22:09
fonte
0

Un lato della medaglia è che non dovresti avere sicurezza per oscurità, quindi non dovrebbe essere necessario nascondere azioni valide dietro 404 risposte quando l'azione non può essere chiamata senza autenticazione / autorizzazione comunque. È molto più bello restituire qualcosa di simile a 401 Non autorizzato. D'altra parte hai ragione, questo probabilmente consentirà la mappatura della tua API, che puoi anche mitigare, ad esempio, limitando le richieste errate.

La tua struttura API non è probabilmente il più grande di un segreto (non dovrebbe essere), i consumatori lo sanno già, o se è qualcosa di simile a un'API per la tua app mobile (o altra), il monitoraggio delle comunicazioni rivelerà rapidamente chiama un potenziale aggressore. Se è consumato da una SPA o da un'app mobile (qualcosa dato al client), il reverse engineering del client rivela anche l'API.

Inoltre, se è prevista una riduzione delle autorizzazioni su chiamate valide, sarà probabilmente possibile utilizzare un attacco di temporizzazione per scoprire quali chiamate sono valide e quali chiamate falsificare la risposta 404, poiché la decisione di autorizzazione richiederà del tempo.

Quindi penso che ci sia ben poco beneficio nel simulare 404 su chiamate non autorizzate ma altrimenti valide, e rende l'API meno utilizzabile (ma ovviamente non è una domanda di sicurezza).

    
risposta data 06.12.2016 - 00:30
fonte

Leggi altre domande sui tag