在Java

时间:2016-04-27 09:44:21

标签: java file batch-file content-type mime

我只使用了将文件上传类型限制为txt。

FormFile fileObj = null;

所以,即使有人将exe文件更改为txt文件并尝试上传它,我也可以通过帮助将其过滤掉  AutoDetectParser,ParseContext,metadata

现在我有一个批处理文件,在转换成txt后,成功上传。

此文件的内容类型为text / plain,与txt相同。

现在, 如何限制此文件上传? 每种类型的文件内容都有一些签名,我们可以根据这些签名区分上传的文件吗? 将这些java文件转换为txt后,是否可以限制这些java文件批处理文件?

1 个答案:

答案 0 :(得分:1)

我假设你在谈论Windows批处理文件。它们没有标题或其他特征,这使得它们可以准确地与正常的#34;文本文件。实际上,批处理文件 ,"正常"文本文件,即它们通常是纯ASCII文件。为了检测它们,你可以想到任意复杂的启发式 - 具有不同的成功率 - 所以,不,你不能可靠地检测它们。

你真的不能限制"批处理文件,好吧,也许吧。您可以将GOTO :eof添加到文件中,或者使用REM::为每一行添加前缀,这样可以有效地停用批处理文件中的任何内容。或者做其他伎俩。

但我不完全确定,为什么你会这样做。在普通的Web应用程序中,上传的文件应该只是存储到文件系统的受限部分而不是可执行的。如果攻击者可能在您的基础架构的某些部分上运行任何类型的上载文件,那么这似乎是一个架构问题。