Servizi Web RESTful - Sicurezza
Poiché i servizi Web RESTful funzionano con i percorsi URL HTTP, è molto importante salvaguardare un servizio Web RESTful nello stesso modo in cui è protetto un sito Web.
Di seguito sono riportate le migliori pratiche a cui attenersi durante la progettazione di un servizio Web RESTful:
Validation- Convalida tutti gli input sul server. Proteggi il tuo server dagli attacchi di iniezione SQL o NoSQL.
Session Based Authentication - Utilizzare l'autenticazione basata sulla sessione per autenticare un utente ogni volta che viene effettuata una richiesta a un metodo del servizio Web.
No Sensitive Data in the URL - Non utilizzare mai nome utente, password o token di sessione in un URL, questi valori devono essere passati al servizio Web tramite il metodo POST.
Restriction on Method Execution- Consenti l'uso limitato di metodi come i metodi GET, POST e DELETE. Il metodo GET non dovrebbe essere in grado di eliminare i dati.
Validate Malformed XML/JSON - Verificare la presenza di un input ben formato passato a un metodo di servizio Web.
Throw generic Error Messages - Un metodo di servizio Web dovrebbe utilizzare messaggi di errore HTTP come 403 per mostrare l'accesso vietato, ecc.
Codice HTTP
| Sr.No. | Codice HTTP e descrizione | 
|---|---|
1  |  
       200 OK - mostra successo.  |  
      
2  |  
       201 CREATED- quando una risorsa viene creata con successo utilizzando la richiesta POST o PUT. Restituisce il collegamento alla risorsa appena creata utilizzando l'intestazione della posizione.  |  
      
3  |  
       204 NO CONTENT- quando il corpo della risposta è vuoto. Ad esempio, una richiesta DELETE.  |  
      
4  |  
       304 NOT MODIFIED- utilizzato per ridurre l'utilizzo della larghezza di banda della rete in caso di richieste GET condizionali. Il corpo della risposta dovrebbe essere vuoto. Le intestazioni dovrebbero contenere data, posizione, ecc.  |  
      
5  |  
       400 BAD REQUEST- afferma che viene fornito un input non valido. Ad esempio, errore di convalida, dati mancanti.  |  
      
6  |  
       401 UNAUTHORIZED - afferma che l'utente sta utilizzando un token di autenticazione non valido o errato.  |  
      
7  |  
       403 FORBIDDEN- afferma che l'utente non ha accesso al metodo utilizzato. Ad esempio, Elimina accesso senza diritti di amministratore.  |  
      
8  |  
       404 NOT FOUND - afferma che il metodo non è disponibile.  |  
      
9  |  
       409 CONFLICT- indica la situazione di conflitto durante l'esecuzione del metodo. Ad esempio, l'aggiunta di voci duplicate.  |  
      
10  |  
       500 INTERNAL SERVER ERROR - afferma che il server ha generato qualche eccezione durante l'esecuzione del metodo.  |  
      
