Services Web RESTful - Sécurité

Comme les services Web RESTful fonctionnent avec des chemins d'URL HTTP, il est très important de protéger un service Web RESTful de la même manière qu'un site Web est sécurisé.

Voici les meilleures pratiques à respecter lors de la conception d'un service Web RESTful -

  • Validation- Validez toutes les entrées sur le serveur. Protégez votre serveur contre les attaques par injection SQL ou NoSQL.

  • Session Based Authentication - Utilisez l'authentification basée sur la session pour authentifier un utilisateur chaque fois qu'une demande est faite à une méthode de service Web.

  • No Sensitive Data in the URL - N'utilisez jamais de nom d'utilisateur, de mot de passe ou de jeton de session dans une URL, ces valeurs doivent être transmises au service Web via la méthode POST.

  • Restriction on Method Execution- Autoriser l'utilisation restreinte de méthodes telles que les méthodes GET, POST et DELETE. La méthode GET ne doit pas être en mesure de supprimer des données.

  • Validate Malformed XML/JSON - Vérifiez les entrées correctement formées transmises à une méthode de service Web.

  • Throw generic Error Messages - Une méthode de service Web doit utiliser des messages d'erreur HTTP tels que 403 pour afficher l'accès interdit, etc.

Code HTTP

Sr.No. Code HTTP et description

1

200

OK - montre le succès.

2

201

CREATED- lorsqu'une ressource est créée avec succès à l'aide d'une requête POST ou PUT. Renvoie le lien vers la ressource nouvellement créée à l'aide de l'en-tête d'emplacement.

3

204

NO CONTENT- lorsque le corps de la réponse est vide. Par exemple, une demande DELETE.

4

304

NOT MODIFIED- utilisé pour réduire l'utilisation de la bande passante du réseau en cas de requêtes GET conditionnelles. Le corps de la réponse doit être vide. Les en-têtes doivent avoir la date, l'emplacement, etc.

5

400

BAD REQUEST- indique qu'une entrée invalide est fournie. Par exemple, erreur de validation, données manquantes.

6

401

UNAUTHORIZED - indique que l'utilisateur utilise un jeton d'authentification invalide ou incorrect.

sept

403

FORBIDDEN- indique que l'utilisateur n'a pas accès à la méthode utilisée. Par exemple, Supprimer l'accès sans droits d'administrateur.

8

404

NOT FOUND - indique que la méthode n'est pas disponible.

9

409

CONFLICT- indique la situation de conflit lors de l'exécution de la méthode. Par exemple, ajouter une entrée en double.

dix

500

INTERNAL SERVER ERROR - indique que le serveur a levé une exception lors de l'exécution de la méthode.