我在“原生”模式下使用<p:fileUpload>
组件将文件上传到我的网站。 <p:fileUpload>
允许限制文件数量和每个文件的大小,但我找不到限制所有页面的总文件大小的方法。
这是困扰我的情况。攻击者可以从同一页面的多个实例启动许多非常慢的上传。这样他就可以使用他想要的空间,即使限制设置为一个1MiB文件。这可能会干扰其他服务。
我该如何避免这种情况?
答案 0 :(得分:0)
第一个解决方案是验证码,在开始上传之前只需要验证码验证。 Primefaces已经可以使用组件:http://www.primefaces.org/showcase/ui/misc/captcha.xhtml
第二个解决方案是在辅助bean中执行验证。考虑到你有@SessionScope bean,你可以在其中定义参数并在其中写入上传数据的总大小。每当您的用户上传您的内容时,在每次上传之前检查用户是否超过了允许的日期。