【发布时间】:2018-08-02 09:00:57
【问题描述】:
我在 java 脚本中上传文件有问题。例如,如果您有客户端验证来检查文件上传的 MIME 类型。任何人都可以将文件重命名为正确的类型并更改 MIME 类型并上传。所以验证不起作用? 例如:在客户端,我正在检查文件是 pdf 类型。所以任何人都可以将 exe 文件重命名为 pdf 并上传到服务器。有没有办法在客户端验证这些场景?
谢谢
【问题讨论】:
-
您甚至无法保证您的客户端代码正在用于将文件发布到您的上传 URL,所以不能。您必须在 服务器 上验证文件。
-
不要想太多。一旦文件从 .exe 重命名为 .pdf ,它将只是一个无效的 PDF 文件,除非有人将其重命名为 .exe,否则它不会突然执行。
-
为了扩展@Pointy 的评论,客户端验证是一种礼貌,可以让您的用户体验更好。服务器端验证是确保应用程序安全的必要条件。任何设计良好的系统都应该始终做到这两点。
-
您应该考虑在客户端按扩展名进行过滤,例如帮助用户查找文件,例如,如果他们正在查找文档,则不包括图像,但从不作为验证,您必须验证服务器中的所有内容一边。
-
服务器端验证很重要。使用正确的 mime 类型。安全应该是您的首要任务,而不仅仅是添加花哨的不安全功能。
标签: javascript php jquery asp.net html