当前位置: 代码迷 >> J2EE >> java有什么步骤判断压缩文件解压后的实际大小,防止文件攻击
  详细解决方案

java有什么步骤判断压缩文件解压后的实际大小,防止文件攻击

热度:42   发布时间:2016-04-17 23:21:28.0
java有什么方法判断压缩文件解压后的实际大小,防止文件攻击
最近在做一个项目遇到一个问题,每个用户都会上传一个压缩文件,并且给每个用户分配的目录大小只有2G,所以问题是要先知道用户上传的压缩文件大小,解压后是不是超过了2G,超过就不允许上传,在网上搜索了下,也没找到合适的方法,看了一个别人给的案例是使用java自带的java.util.zip实现的,但是校验bz2这种类型的压缩文件大小时候,总是报错:
java.util.zip.ZipException: error in opening zip file,一直没有找到解决方法,所以来论坛问问,请高人指点下
------解决思路----------------------
上传的文件先放到临时目录,解压后不超过2G才认为OK,否则直接删除。
------解决思路----------------------
引用:
最近在做一个项目遇到一个问题,每个用户都会上传一个压缩文件,并且给每个用户分配的目录大小只有2G,所以问题是要先知道用户上传的压缩文件大小,解压后是不是超过了2G,超过就不允许上传,在网上搜索了下,也没找到合适的方法,看了一个别人给的案例是使用java自带的java.util.zip实现的,但是校验bz2这种类型的压缩文件大小时候,总是报错:
java.util.zip.ZipException: error in opening zip file,一直没有找到解决方法,所以来论坛问问,请高人指点下


首先,这种方式不是很好,要是人家zip加密了怎么办,zip本身是不代解压后的信息的(包括文件名和大小)

其次,看你的异常,你把jdk版本发来,有些jdk并不能很好的支持zip,再有把你的代码贴出来,看看你的用法是不是有问题。
------解决思路----------------------
小哥,人家那是bz2,跟zip揍是两个格式,java.util.zip根本不支持。java2s.com上的代码只能打开zip文件。楼主这个问题,只能去试试Apache Commons Compress: http://commons.apache.org/proper/commons-compress/

或者干脆限制bz2上传!

引用:
Quote: 引用:

Quote: 引用:

最近在做一个项目遇到一个问题,每个用户都会上传一个压缩文件,并且给每个用户分配的目录大小只有2G,所以问题是要先知道用户上传的压缩文件大小,解压后是不是超过了2G,超过就不允许上传,在网上搜索了下,也没找到合适的方法,看了一个别人给的案例是使用java自带的java.util.zip实现的,但是校验bz2这种类型的压缩文件大小时候,总是报错:
java.util.zip.ZipException: error in opening zip file,一直没有找到解决方法,所以来论坛问问,请高人指点下


首先,这种方式不是很好,要是人家zip加密了怎么办,zip本身是不代解压后的信息的(包括文件名和大小)

其次,看你的异常,你把jdk版本发来,有些jdk并不能很好的支持zip,再有把你的代码贴出来,看看你的用法是不是有问题。

另外,你用的什么中间件,印象中zip的工具再中间件里的某些包也有,出现冲突以后也会报异常(包括版本)
  相关解决方案