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.