【问题标题】:Is there a way to limit request frequency and sizes out of the box in ktor?有没有办法限制 ktor 开箱即用的请求频率和大小?
【发布时间】:2021-05-12 15:14:13
【问题描述】:

简单地说,我有post("/login") { ... } 和post("/uploadAvatarImage") { ... } 之类的方法,我想适当地限制大小。如果我自己手动滚动,我可以找到某种方法来挂钩每个请求并在滚动速率高于可接受的情况下抛出,或者创建 post 的覆盖以包括速率限制和大小限制等内容。如果这些都可以在某些配置部分全局定义就好了,这样我就不必手动检查用户是否提供了 20 亿字符的用户名。

这是 ktor 中存在的功能吗?或者任何人都有一个很好的例子来说明一个很好的方法,如果存在比我想象的更好的东西吗?

【问题讨论】:

  • 你的意思是限制 POST 正文的大小吗?
  • 好吧,我想任何身体。最好在高层次上说“除非我在处理程序上另有说明,否则请求不应超过 3kb”。

标签: ktor


【解决方案1】:

为了回答您关于限制大小的问题,我假设在这些请求的正文中您正在反序列化为某种数据类?如果是这样,valiktor 库 (link) 可以很容易地为特定属性添加最大大小限制。

关于速率限制,我真的不希望框架本身会这样做,但是似乎有人为此 (link) 做了一个功能。

有趣的是,我的意思是 Spring Boot 本身也没有速率限制,而是它的 nginx 竞争对手 Spring Cloud Gateway 具有速率限制功能。它提出了一个问题,即在到达您的应用程序之前,是否有必要考虑在另一层(例如网关入口点)引入速率限制的架构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2015-08-29
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多