Il messaggio di errore / ack dovrebbe essere costruito nel client o nel server?

4

I messaggi che verranno mostrati al client dovrebbero essere risolti sul lato client o sul lato server? Qualche design (dis) vantaggio a cui puoi pensare tra i due approcci? Se il sistema conserva informazioni riservate e diversi set di informazioni sono gestiti da utenti con diversi set di autorità, l'esposizione di tutti i modelli di messaggi nel lato client costituisce un problema di sicurezza?

Di seguito è riportata la logica di esempio che costruirà i messaggi per client e lato server:

Gestione client:

httpService.post('/someEndpoint', requestBody)
  .subscribe(json => {
    if(json.errorCode) {
      // the error service will retrieve the error template
      // for such errorCode and replace placeholder with
      // values from the requestBody
      errorService.alert(json.errorCode, requestBody);
    }
  });

Gestione server:

if(hasErrors) {
  // sets the response error code and error message
  apiResponse.error(errorCode, requestBody);
}

Callback client:

httpService.post('/someEndpoint', requestBody)
  .subscribe(json => {
    if(json.errorCode) {
      errorService.alert(json.message);
    }
  });
    
posta user3367701 09.10.2017 - 12:30
fonte

1 risposta

2

In realtà una domanda molto buona, e molto acuta da parte tua da chiedere. Penso che per gli scopi di localizzazione, questo ruolo è in genere lasciato al cliente, passando solo un codice di errore, per non parlare del fatto che il messaggio è più sintetico. Tuttavia, tende anche ad essere molto difficile da gestire quando si verificano errori senza una corretta documentazione o client per gestirli.

Ricorda che anche se il client nasconde il messaggio di errore, qualsiasi informazione inviata al client è pubblica, a meno che tu non stia usando https, quindi dovresti fare attenzione a non fornire mai troppi dettagli del problema e ancora meno per problemi probabilmente creati come conseguenza di problemi di sicurezza.

    
risposta data 09.10.2017 - 16:44
fonte

Leggi altre domande sui tag