【问题标题】:How to validate request content for web service?如何验证 Web 服务的请求内容?
【发布时间】:2017-04-02 15:44:57
【问题描述】:

我想找到一种通用方法来在 HTTP 请求内容到达服务器之前对其进行验证。

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

我有一个公开的 API,我想通过任何允许以下规则的代理过滤对我的 API 的请求。

例如我的 API 方法之一:

POST: my_server/data/colection
application/json

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

我想验证以下事实:

  • 请求正文是有效的 JSON 对象
  • “key1”为字符串,必填,允许[a-z,0-9],最大长度50个字符。
  • “key2”为数字,必填,取值范围为1-1000
  • “key3”是布尔值,可选

如果请求的内容或架构不符合上述条件,我想使用适当的状态代码拒绝请求。

是否有任何服务或代理模块(nginx、haproxy 或任何其他)允许执行此类操作?

附:即使是部分解决方案也可能有效。

【问题讨论】:

    标签: security nginx haproxy gateway


    【解决方案1】:

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

    使用 waf 需要考虑的三件事是相对较高的价格标签、正确设置它所需的努力以及它们并不完美的事实,即。虽然它们可以在一定程度上防止说 XSS,但如果受保护的应用程序易受攻击,很可能会有办法绕过 waf 中的过滤器。但它确实提高了标准。

    我对 api 网关不是很熟悉,但我怀疑其中一些也可能提供这种参数类型和范围强制功能(没有完整 waf 提供的其他保护方面)。

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2013-01-27
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多