关于手机压缩文件的一点疑惑

2018-10-18 19:48:53 +08:00
 Windrunner
大一新生一枚,在学校网站上传一个.zip 的作业时会提示文件格式不正确,无论是用手机(华为)自带程序还是 ZArchiver 压缩都有这个问题,然而用在 PC 上用 winrar 压缩的文件(还是.zip )上传则没有问题(还是用手机上传的)。后来在手机上打开这个 winrar 压缩包,无论是用自带的还是 ZArchiver 都会出现文件名乱码…想问一下这两个压缩方式有什么区别,以及如何解决这个问题…
2909 次点击
所在节点    Google
5 条回复
Kagari
2018-10-18 20:04:46 +08:00
Linux Windows zip 编码 文件头
不知道他是怎么检查文件格式的呢
icedx
2018-10-18 20:42:16 +08:00
Windows 上的 Winrar 是 GB2312 编码
Android 和 ZArchiver 是 UTF-8

估计你们学校网站用的 Java
在我认知里只有 Java 在中文环境下是 GB2312


处理 zip 的函数是一个大 try 到 catch 就返回格式不正确了
很有可能服务器试图解压 zip 中的文件到 fs 中 而且解压的文件名用了 ZipEntry.getName()
但是 ZipEntry.getName() 包含乱码(不可见字符) 导致了 java.io.FileNotFoundException

如果上边猜的差不多的话
感觉你们学校的系统很有可能用的 Windows 而且上传作业这个过程有目录穿越漏洞
Windrunner
2018-10-18 21:22:23 +08:00
大佬这个漏洞可以干什么吗 @icedx
icedx
2018-10-18 21:32:41 +08:00
@Windrunner
按照学校的水平应该不会有限制权限什么的
可以上传文件
Windrunner
2018-10-18 22:14:39 +08:00
上传??@icedx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/498898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX