2016-11-18 65 views
2

我想找到验证HTTP请求内容到达服务器之前的通用方法。如何验证Web服务的请求内容?

目标是为产品提供强大的安全性。

我有一个暴露给公众的API,我想通过允许以下规则的任何代理来过滤到我的API的请求。

例如我的API方法之一:

POST: my_server/data/colection 
application/json 

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

我想验证以下事实:

  • 请求体是有效的JSON对象
  • “KEY1” 是一个字符串,需要,允许[az,0-9],最大长度为50个字符。
  • “KEY2”是数字的,必须的在1-1000
  • “KEY3”的范围是布尔值,可选

如果内容或模式请求的上述不适合的标准我要拒绝具有适当状态码的请求。

是否有任何服务或代理模块(nginx,haproxy或任何其他)允许做这样的事情?

P.S.即使部分解决方案可能会奏效

回答

0

这是Web应用程序防火墙(wafs)的典型功能。市场上有很多,我不想公布其中的任何一个,但大多数可以做到这一点以及其他很好的安全功能(如根据其内部规则过滤潜在的攻击,或收集和共享威胁情报互联网)。

需要考虑的三件事情是相对较高的价格标签,正确设置它的努力,以及它们并不完美的事实,即。虽然他们可能会在某种程度上防止说XSS,但如果受保护的应用程序易受攻击,那么最有可能是围绕waf中的筛选器。但它确实提高了标准。我不太熟悉api网关,但我怀疑其中一些可能还提供了这个参数类型和范围实施功能(没有由完整的waf提供的其他方面的保护)。