阻止用户将大文件上传到服务器

时间:2014-01-23 16:21:52

标签: ruby-on-rails file-upload nginx

我担心有人可能会因为上传一个非常大的文件而导致我们的服务器崩溃 - 例如,10千兆字节或更多。

目前,我的javascript限制设置为10mb,我还会在写入之前检查服务器上文件的大小。话虽这么说,javascript限制可能很容易被攻击者绕过,而且服务器上的检查来得太晚 - 文件上传后。

那我怎么能阻止某人上传大文件呢?我正在使用rails,nginx和unicorn。

编辑:

在写这个问题的过程中,我在弹出窗口上看到了一些关于名为client_max_body_size的nginx设置的其他SO问题。我假设只是通过设置这个我可以自动拒绝来自客户端超过一定大小的请求。有人可以证实这一点吗?

1 个答案:

答案 0 :(得分:2)

是的,在你的nginx配置中设置最大客户端大小。如果代码太大,请求将失败,代码为413。查看nginx docs了解更多详情。

编辑:确保重新启动nginx以使用新设置,像'sudo nginx -s reload'这样的命令可以解决这个问题。