2016-11-18 3 views
2

Je voudrais trouver le moyen générique de valider le contenu de la requête HTTP avant qu'il ne soit atteint par le serveur.Comment valider le contenu d'une demande de service Web?

L'objectif est de fournir une sécurité robuste pour le produit.

J'ai une API exposée au public, et je veux filtrer les requêtes à mon API par n'importe quel proxy qui autorise les règles suivantes.

Par exemple, un de ma méthode API:

POST: my_server/data/colection 
application/json 

{ 
    "key1": "stringValue", 
    "key2": 2, 
    "key3": true 
} 

Je veux valider les faits suivants:

  • le corps de la demande est un objet JSON valide
  • "key1" est une chaîne, nécessaire , autoriser [az, 0-9], longueur maximale 50 caractères.
  • « key2 » est le numéro, nécessaire, dans la gamme de 1-1000
  • « key3 » est booléenne, en option

Si un contenu ou d'un schéma de la demande pas aux critères ci-dessus ajustement Je veux rejeter la demande avec le code d'état approprié.

Y a-t-il un module de service ou de proxy (nginx, haproxy ou autre) permettant de faire de telles choses?

P.S. Même une solution partielle pourrait fonctionner.

Répondre

0

Il s'agit d'une fonctionnalité typique pour les pare-feu (wafs) d'applications Web. Il y en a plusieurs sur le marché et je ne veux en faire de publicité, mais la plupart peuvent le faire avec d'autres fonctionnalités de sécurité (comme le filtrage des attaques potentielles basées sur leurs règles internes ou la collecte et le partage d'informations sur les menaces). l'Internet). Trois choses à considérer avec un waf sont le prix relativement élevé, l'effort nécessaire pour le configurer correctement, et le fait qu'ils ne sont pas parfaits, c'est-à-dire. Bien qu'ils puissent protéger XSS dans une certaine mesure, si l'application protégée est vulnérable, il y aura probablement un moyen de contourner les filtres dans le waf. Mais cela augmente la barre. Je ne suis pas très familier avec les passerelles API, mais je soupçonne que certaines d'entre elles peuvent également offrir ce type de paramètre et la fonctionnalité d'application de gamme (sans les autres aspects de la protection fournis par un waf complet).