【问题标题】:How can I create a file with a non-printing character in the name?如何创建名称中包含非打印字符的文件?
【发布时间】: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


【解决方案1】:

在 Un*x/Bash 上,您可以通过以下方式使用字节文字创建文件:

$ touch `echo -e "\x7f.txt"`

然后您可以通过以下方式进行验证:

$ ls -b
\177.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-21
    • 2017-10-27
    • 2013-03-23
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多