我想我想限制的最大文件大小和形式的有效载荷,可以到达一个Rails 4应用程序,托管在Heroku与美洲狮应用服务器。我还想在完成释放服务器资源之前终止这些请求。保护Puma/rails抵御大型有效载荷攻击(类似LimitRequestBody)?
我假设这不能在Rack中完成,因为它在请求完成上传后执行?
考虑到这一点,它似乎是Web服务器的工作,但我在Puma中找不到提及。它是否有我错过了处理这种事情的机制?
另一种方法是使用nginx或apache的phusion乘客可以更好地处理这个问题吗?
http://httpd.apache.org/docs/1.3/mod/core.html#limitrequestbody http://www.cyberciti.biz/faq/apache-limiting-upload-size/
为什么护理:大文本用尽
- 内存正在变成大的红宝石串
- CPU浪费的扫描非常大的字符串做SQL逃逸或HTML逃逸或应用验证
- 由于大量客户端上传大量文件(或巨大的表单数据),服务器无法接受新连接
加分:下一步似乎是临时禁止在防火墙中重复违规者,以至于他们无法访问Web服务器。哪些技术对Heroku有好处?
编辑:相关的其他线程 Protect yourself against Dos attacks
感谢您的帮助加文! 这是为了降低实时应用程序的风险。我们不打算招聘或使用专家。安全是一个持续存在的问题,但我们的手段有限,对问题的掌握程度有限。 正如您所提到的客户端验证更多的是UI/UX功能,但是Heroku的请求限制,并与您的S3建议帮助。 架攻击比处理错误的请求更好,但我宁愿反向代理删除它们。 Heroku没有公开 防火墙或SDN API,所以我猜我们运气不好。 我接受你的答案,因为它有帮助,并让我重新思考。 – nruth
这么多在评论中的线索! – nruth
@nruth也能够设置使用的nginx buildpack在Heroku反向代理:https://github.com/ryandotsmith/nginx-buildpack。这款YMMV的成功取得了有限的成功。 –