È un fatto noto che l'esposizione delle informazioni di eccezione all'utente finale fornisce rischi per la sicurezza poiché un avversario può utilizzarlo per capire come funzionano le cose internamente e attaccarle. Ma che dire di un servizio web, in cui tali informazioni potrebbero essere rilevanti per gli sviluppatori che consumano l'API?
Da un lato esponendo lo stacktrace completo e persino il messaggio è rischioso poiché potrebbe contenere alcune informazioni sul database, ad es. d'altra parte se qualcosa va storto e il server dice solo 500 "scusa", allora gli sviluppatori sarebbero frustrati. Immagino che il modo corretto sia gestire tutte le eccezioni che conosci in modo sicuro, ad esempio prendere le eccezioni business / validation e restituirle con speciali codici di errore e messaggi (senza stacktrace) e per tutti gli sconosciuti ancora fare 500 "sorry".
Ma mi piacerebbe qui quali sono i modi comuni per farlo e quale approccio dovrebbe essere preso dal punto di vista della sicurezza.