Devo esporre il codice di stato HTTP 500 su un'applicazione REST?

2

Nella mia applicazione Spring MVC 3, sto seguendo i pattern REST e molta logica si basa sui codici di stato HTTP. Ad esempio 500 definisce un errore del server. Tuttavia, Modsecurity OWASP dice di non esporre questo codice di stato.

Non capisco perché un codice di stato di 500 sarebbe cattivo? Vedo anche Google mostra 500 correttamente .

    
posta Novice User 04.10.2016 - 07:07
fonte

2 risposte

2

Un errore 500 indica che il server ha avuto un errore interno. Normalmente significa una delle due possibilità:

  • o un componente è inattivo - ok, l'errore scomparirà non appena si riaccende
  • o una condizione eccezionale non viene elaborata correttamente dall'applicazione

L'occorrenza di un errore 500 dovrebbe sempre essere seguita da un'azione: se un componente era inattivo, deve essere riparato o riavviato e se una condizione eccezionale non è stata filtrata, l'applicazione ha bisogno di una correzione.

Si verifica un problema con le applicazioni che non elaborano condizioni eccezionali e sono scarsamente supervisionate e mantenute. Se un utente malintenzionato vede un errore 500 che si verifica in modo coerente in determinate richieste, è un'indicazione che l'applicazione non può elaborarlo e non ha elaborato la condizione di errore. Forse una leggera variazione potrebbe far accadere cose brutte ...

Ma la semplice sostituzione del codice 500 con dire un 400 non è una vera soluzione: nasconde solo il vero problema. Se stavo facendo un test di penetrazione black box (senza accesso al codice), semplicemente non fare affidamento sul valore del codice di errore e provare tutti i punti deboli noti, quindi nascondere un 500 interno con un 400 non proteggere l'applicazione. E credo davvero che gli hacker seri penseranno lo stesso ...

In un mondo professionale, i 500 errori dovrebbero essere analizzati, e quando causati da una condizione eccezionale non elaborata, un ticket dovrebbe essere compilato per il team di sviluppo. Per un'applicazione interna, un errore 500 dovrebbe significare (esplicitamente o implicitamente) questo è un errore imprevisto, contatta il supporto

    
risposta data 04.10.2016 - 10:58
fonte
1
Gli errori di

server generalmente danno una visione complessiva di quanto l'attacco ha avuto successo sul server. come se fosse 403, mostra che l'autenticazione specifica è stata bloccata con successo dal server (significa che server ha gestito certe attività illegali abbastanza bene), ma quando il server genera 500, significa che non è stato in grado di gestire determinati errori, quindi è stato confuso, come risultato, dando la possibilità agli hacker di fare più sforzi nello sfruttare il 500 errore correlato, dove può scavare più a fondo per penetrare all'interno del server.

In breve, 500 errori possono essere pericolosi, in quanto vengono lanciati solo quando si verifica qualcosa di non gestito e gli utenti non devono vedere il risultato o l'output generato (tale stato o risultato può essere efficace nel penetrare più a fondo nel server)

    
risposta data 04.10.2016 - 07:34
fonte

Leggi altre domande sui tag