今天在写文件上传和下载时遇到了一个错误;
此报错产生的原因----->>>
明明知道强行运行会报错,但我就是想看看运行之后 报什么错;
事情的经过是这样的,本来要写文件的上传和下载,在导入maven依赖时,发现有三个jar包 怎么也导入不进去;
导入时是这样的---->>
提示找不到jar包,于是我就去本地仓库看了一下,jar都有呀,
咋整?又跑去远程maven仓库看了一下,发现这三个依赖jar都有漏洞,所以maven是不打算让我用了,我偏要用,毕竟在学习阶段;
我把三个jar都下载都找到(找不到可以直接在远程仓库下载)
强行在WEB-INF下建立lib目录,然后将三个jar添加进去,add as libarary
再次运行,之后一切又回归了平静
如果还是报错,那就检查一下编译之后的target里面有没有相应的jar包,一般情况下是没有的,这可能是idea的一个bug吧;
这个时候可以上传文件了;问题解决;
至于为什么有漏洞,这是因为
在序列化和反序列化时会触发readObject这个方法,使得能够任意读写文件和目录,这个还跟jdk版本有关;
详细解析请参考链接
Apache Commons Fileupload 漏洞,可恶意操作文件
注意以上只是临时解决思路,还是需要考虑一种安全的替代方法;
暂时可以限制文件读写的范围,大小等来减少损失;