【问题标题】:How to not respond to a request on Google App Engine如何不响应 Google App Engine 上的请求
【发布时间】:2015-03-07 21:28:44
【问题描述】:

对计时攻击的一种防御措施是,如果调用未能通过质询,则根本不响应请求,因为这可证明没有关于比较的计时信息。

Google App Engine/Flask 中有没有办法不响应请求?

我认为可以使用例如sleep(TIMEOUT) 其中TIMEOUT 大于 App Engine 响应的最长时间,但我担心这会导致拒绝服务,因为它会使线程悬空。

【问题讨论】:

  • 据我了解,如果您当前的实例“停止响应”或响应缓慢,这也可能导致调度程序启动新实例。
  • @PaulCollingwood - 是的,到处都是坏事。

标签: google-app-engine http flask


【解决方案1】:

很遗憾没有。

它命中路由的事实意味着您的网络服务已经“处理”了该连接并且损坏已经造成。

最好的办法是abort(404)

如果您真的想增加额外的防御,您需要使用额外的服务,但在应用程序级别您无能为力。正如你所说,睡眠只会保持连接打开。您最好的做法是以尽可能低的开销来处理它。

【讨论】:

  • 感谢 PsyKzz。很高兴知道。
  • 此外,如果您对时间敏感的事情来验证请求,因为关闭 TCP 连接会提供时间信息,所以您应该阻止请求,直到经过一段恒定的时间。更好的方法是首先使用抗时序算法。
  • 我会(如果担心 ddos​​ 攻击)不使用时间敏感的方法。也许创建一个辅助服务来提供这个。或者至少确保您的 wgi 设置正确以处理这些类型的请求。
猜你喜欢
  • 2016-03-02
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 2018-01-19
相关资源
最近更新 更多