2 votes

Comment protéger une API RestFul en Nodejs?

Actuellement, j'utilise https://github.com/baugarten/node-restful qui m'aide à travailler sur une API, la question est ?

Je travaille dans le framework Express, y a-t-il un moyen de protéger la requête "GET" d'autres sites vers le mien ?

J'utilise le CSRF d'express mais il ne fonctionne que pour les méthodes POST, PUT, DELETE avec un message d'interdiction 403 quand j'essaie de faire quoi que ce soit avec curl dans la console, mais si je fais un curl vers une méthode Get curl localhost:3000/posts ça me renvoie un tableau avec tous les articles.

  app.use(express.csrf());
  app.use(function(req, res, next){
      res.locals.token = req.session._csrf;
      next();
  });
  app.use(app.router);

Que me conseillez-vous ? Y a-t-il d'autres modules pour travailler avec une API de manière plus efficace ? Comment protéger une API en nodejs ? Quelles sont les meilleures pratiques que je dois apprendre ?

Merci pour votre aide.

2voto

shawnzhu Points 2190

Essayez le middleware Express qui est conçu pour cela. Par exemple:

var express = require('express');
var app = express();

// middleware simple pour protéger votre URI
app.use(function(req, res, next){
  if (req.method == 'GET') {
     if (!req.locale.token) { res.send(403); } // personnalisé selon votre politique
     else if (req.protocol !== "https") {res.redirect("votre-url-securisee");}
     else { next(); }
  }
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X