我使用 flask 开发后端,并且我目前正在阅读有关 Billion 笑声攻击等攻击的信息。虽然我知道有其他方法可以防御它们,但我提出这个问题的动机是纵深防御(在不同的组件中采用几种不同的防御 - 如果绕过一个,希望其他防御也有效)。
一个用户不应该引起其他用户的 DOS。如果我通过 gunicorn 运行 Flask,我认为它会为每个请求生成一个线程。是否可以为这些线程设置硬性 CPU 使用率/内存使用率限制?
根据我的发现,我猜这可能是不可能的,或者我看错了级别:
我认为主进程需要管理它的线程,但也许操作系统也可以/必须这样做?
答案 0 :(得分:0)
我想我找到了an answer:
post_worker_init(worker)
和 resource.setrlimit(resource.RLIMIT_AS, 10 * 2**20)
。也可能是 resource.RLIMIT_STACK
或 resource.RLIMIT_HEAP
。