Se un backend Restful API implementa la convalida dei dati

2

Sto lavorando a un progetto che coinvolge API restful back-end e app front-end a pagina singola. Mi chiedo se l'API di back-end deve implementare tutti i tipi di logica di convalida dei dati, che deve essere implementata anche nei moduli di input front-end?

    
posta ambes 09.02.2017 - 18:15
fonte

2 risposte

12

sì, i dati possono essere sempre manipolati su un lato client o in trasferimento. non puoi MAI dipendere da una convalida del lato client. lato client è un lato del computer hacker, quindi non è affatto sicuro. la validazione lato client è solo per comodità dell'utente.

anche come menzione di @ erik-eidt, esiste un potenziale per le condizioni di gara con la convalida lato client, ovvero il nome di accesso dell'utente può essere libero (valido) quando si compila il modulo online, ma già preso quando si invia un po 'più tardi.

    
risposta data 09.02.2017 - 18:22
fonte
4

Generalmente è meglio convalidare su tutti i livelli dell'applicazione, ripetendo le convalide se necessario.

In genere si desidera la convalida nel db perché generalmente si desidera garantire che i dati siano coerenti e obbediscano a determinati vincoli.

Dovresti convalidare nel back-end perché di solito è lì che si trova la "verità" sulla logica aziendale e convalidare lì può salvare inutili viaggi nel db per salvare dati non validi.

La convalida nell'interfaccia utente è la parte facoltativa, in quanto può essere gestita dal back-end, che può restituire un errore per l'interfaccia utente da visualizzare. Tuttavia, l'esperienza utente è molto meglio se si convalida il front end in quanto è più veloce (non c'è bisogno di parlare con l'API)

    
risposta data 09.02.2017 - 18:27
fonte

Leggi altre domande sui tag