【发布时间】:2016-03-11 18:48:09
【问题描述】:
我遇到了这样一种情况,即文件被上传到文件名中包含非打印 UTF-8 字符的服务器。我知道如何修改名称,但我希望能够创建用于测试的文件,并且我还想了解人们一开始是如何意外(或有意)这样做的。
那么,考虑到这一点,人们可以通过哪些方式创建包含非打印字符的文件名?在本例中,它是 DELETE (U+007F),但我对任何非打印字符都感兴趣。
我正在寻找易于在命令行(linux、unix 和 DOS)上有意完成的方法,以及人们可能通过命令行或 GUI(windows、OSX、linux)意外执行此操作的方法.
【问题讨论】:
-
您能否详细说明它们的上传方式?我问的原因是,如果您以 HTTP 为例,文件名通常将作为请求的一部分提供,使用 multipart/form-data 内容类型。浏览器将使用所选文件的文件名。但是,如果您对滥用向量感兴趣,那么您应该注意,如果请求是在浏览器之外构建的,则提供的值可以是任何东西(即使是给定文件系统上不可能存在的名称)。
-
@nj_ 这是一个很好的观点。在这种情况下,文件通过 HTTP 使用 multipart/form-data 上传,大概是通过客户端的浏览器。我对意外向量比滥用向量更感兴趣,但我很乐意了解任何可能的情况。
标签: utf-8 character-encoding non-printing-characters