È una buona idea usare l'API REST dal codice Javascript

0

Sto sviluppando un'applicazione Web di e-commerce come parte del mio apprendimento utilizzando Spring Hibernate e AngularJs.

Ho scritto alcuni controller API di Rest in Spring e poi dal Componente Web sto invocando lo stesso usando Angular Js come il seguente: -

 storezillaadminapp.service('CategoryService',function($http){

    var listCategories = [];

     this.getAllCategories = function() { 
         return $http.get(_contextPath+'/categories');
     };

     this.addCategory = function(category) {
       return $http.post(_contextPath+'/categories/add',category);  
     };

     this.updateCategory = function(category) {
       return $http.put(_contextPath+'/categories/edit',category);  
     };

     this.removeCategory = function(id) {
         return $http.delete(_contextPath+'/categories/remove/'+id);
     };
 });
  1. La preoccupazione qui è, è una buona idea esporre il resto delle API dal codice javascript come sopra? La ragione per chiedere questo è che, alla fine della giornata, tutti i file js vengono scaricati sui computer client rendendo la tua API più vulnerabile. Quali sarebbero i modi per nascondere questo anche se l'approccio è usato.

  2. Ho visto molte applicazioni che scrivono codice Ajax lato server per gestire le richieste Ajax.

Grazie!

    
posta Mitesh Manani 10.07.2016 - 14:10
fonte

1 risposta

3

Se stiamo parlando di JavaScript allora sì, è una buona idea, perché è, purtroppo, l'unico strumento a tua disposizione.

Pensa alla tua API REST come a un sito web pubblico. Quando si crea un sito Web e non si desidera che gli utenti facciano qualcosa, non implementare tale funzionalità o vietare a determinati utenti di utilizzarlo. Con un'API REST che dovrebbe avere endpoint pubblici è praticamente la stessa, è necessario trattarla come un sito Web pubblico.

La tua API REST dovrebbe essere abbastanza robusta da non consentire operazioni non valide, come l'accesso ai dati da un altro utente.

Se sei preoccupato che alcune persone possano (D) fare il server su cui viene eseguito il servizio web REST, ti preoccupi troppo. Lo stesso può accadere anche quando non si ha un servizio web (REST) e tutto viene elaborato attraverso richieste standard.

Se l'API REST fornisce una logica di back-end per un'applicazione pubblica, dovresti trattare l'API REST allo stesso modo, con la stessa accessibilità. Se hai un'API REST che dovrebbe essere privata, ovviamente non dovrebbe far parte di un sito web pubblico e dovrebbe essere condivisa attraverso canali privati e, se ritenuto necessario, essere limitata solo a specifici utenti / IP.

    
risposta data 10.07.2016 - 15:53
fonte

Leggi altre domande sui tag