在Jersey REST API上传过程中,是否应该限制文件名的长度?

问题描述 投票:0回答:1

当用户上传文件时,会有一些明显的验证,比如:限制文件大小,检查文件扩展名是否可以接受等等。

我想知道限制文件名中的字符数量是否有什么好处?所以用户不能上传文件到后台API,比如说10000个字符。这有什么用处吗,还是说这被认为是一种不必要的检查?

java jersey
1个回答
0
投票

In general, the receiving MUA should not name or place the file suchthat it will get interpreted or executed without the user explicitlyinitiating the action.filenamemultipart/form-data 的参数

只是一个建议的文件名。所以不需要任何验证。

  • 但是如果你要使用这个建议的文件名在服务器上创建一个本地文件,你必须考虑到一些重要的因素。
  • 丢弃文件名中可能存在的任何路径信息。
  • 文件名不与现有的本地文件冲突。

当然,服务器文件系统的最大文件名长度为引用当前多格式数据的规范(RFC 7578

)

如果提供了 "文件名 "参数,[RFC2183]第2.3节对 "接收MUA"(即接收Mail用户代理)的要求也适用于多格式数据的接收者:不要盲目使用文件名,如果适用的话,检查并可能改变为与本地文件系统约定相匹配,不要使用可能存在的directypath信息。引用的 RFC 2183的2.3节。

有更详细的解释,第5节详细介绍了一些安全方面的考虑。

  • 由于本备忘录为发送者提供了一个建议文件名的方法,所以接收的MUA必须注意发送者建议的文件名不代表危险。以UNIX为例,一些危险是这样的。

  • 创建启动文件(如".login")。

  • 创建或覆盖系统文件(如 "etcpasswd")。

  • 覆盖任何现有文件。

  • 将可执行文件放入任何命令搜索路径中(如"~binmore")。

将文件发送至管道(例如,"

© www.soinside.com 2019 - 2024. All rights reserved.