论坛首页 Java企业应用论坛

你的WEB系统是否存在这样的问题?

浏览 9258 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-07-20  
当你的WEB系统有上传附件功能时,是否有限制上传大小?
如果没有,那么在恶意攻击下,一击必杀了。
如果有,有曾试过,是否已经将文件上传到了服务器内存才得到文件大小并判断?

所以有人知道,当Form提交多个附件到服务器时,是否已占用了服务器的内存呢?有什么办法可避免OutOfMemory?

差点想用论坛来测试一下了,:)
   发表时间:2006-07-20  
那就看上传怎么做的了。
有的是拿硬盘缓存的。
0 请登录后投票
   发表时间:2006-07-20  
dwangel 写道
那就看上传怎么做的了。
有的是拿硬盘缓存的。


请问你的意思是附件的内空不经过请求头就到硬盘了?

问的问题回复的人都很少,比如这个问题,难道大家都没有问题吗?
0 请登录后投票
   发表时间:2006-07-24  
用commons-fileupload时,对于大的文件,它确实是写到硬盘临时文件的,不过使用者不用关心它具体怎样处理...
0 请登录后投票
   发表时间:2006-07-24  
myy 写道
用commons-fileupload时,对于大的文件,它确实是写到硬盘临时文件的,不过使用者不用关心它具体怎样处理...


谢谢,我想问如果用commons-fileupload,当功能允许用户上传多个文件时,用户恶意上传几个上G的文件,有问题吗?我发觉TOMCAT的内存占用会急剧上升。

请有经验的网友指点一二,TKS!
0 请登录后投票
   发表时间:2006-07-24  
liuyxit 写道
myy 写道
用commons-fileupload时,对于大的文件,它确实是写到硬盘临时文件的,不过使用者不用关心它具体怎样处理...


谢谢,我想问如果用commons-fileupload,当功能允许用户上传多个文件时,用户恶意上传几个上G的文件,有问题吗?我发觉TOMCAT的内存占用会急剧上升。

请有经验的网友指点一二,TKS!


用int totalToRead = request.getContentLength();在服务器端得到要上传文件的大小,然后根据totalToRead的大小再处理(如大小超过可以立即停止上传等)。
这样就在上传开始前就可以知道文件大小了。
0 请登录后投票
   发表时间:2006-07-24  
zelsa 写道

用int totalToRead = request.getContentLength();在服务器端得到要上传文件的大小,然后根据totalToRead的大小再处理(如大小超过可以立即停止上传等)。
这样就在上传开始前就可以知道文件大小了。


基本上可以,不过,在多个大文件情况下,表单提交到服务端真正接收到数据前,ie的处理时间也是很长的,并且界面会没有响应,很不友好。
目前,在我们的系统中(OA),是用ocx来在客户端判断的,反正OA中本来必须得安装OCX(方正的公文插件,用户自己要求的),也就不在乎多一个实现其他功能的ocx了 :-)
0 请登录后投票
   发表时间:2006-07-24  
也可以在服务器级别进行设置,比如,Apache就可以限定上传文件大小,或者说请求内容大小,不太清楚Tomcat和JBoss,向来应该是可以的。
如果不行,可以用楼上的建议。
0 请登录后投票
   发表时间:2006-08-15  
你可以限制用户上传附件的大小啊
0 请登录后投票
   发表时间:2006-08-16  
大文件上传走HTTP协议肯定慢!换思路。。。
实在要用,那就要COS组件啊,它是一边传一边写到文件里的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics