php - 我是否需要验证将由file_get_contents使用的上传文件

时间:2016-02-02 02:42:10

标签: php security file-upload

我正在编写一个php脚本,用户上传一个文件,服务器将读取该文件以检索某些数据然后删除,所有内容都在同一个脚本中发生。

类似的东西:

// Saves the file
// Loads the file (file_get_contents)
// Retrieve data
// Delete file

一些注意事项:

  • 在此期间,文件将以随机生成的名称存储。
  • 文件将具有最小和最大允许大小。
  • 在执行任何进一步操作之前,将正确验证检索到的数据

我的问题是:在保存和阅读文件期间,我是否需要采取任何进一步的安全措施?

我希望我的问题很明确。提前谢谢。

2 个答案:

答案 0 :(得分:0)

我的担忧是在上传过程中,而不是在您处理文件时。

您希望确保您只允许某些类型的文件。我会避免允许二进制或可执行文件。看起来你让他们上传基于文本的文件,所以在你的PHP脚本中,使用类似这样的检查:

{{1}}

答案 1 :(得分:0)

@LuvnJesus有一个好主意,除了"类型" element由用户代理设置。如果可行,更好的想法是使用实​​际检查文件的第一个字节的工具。对于图像,我知道这不是您描述的场景,人们已经学会以巧妙的方式使用GD库来确定文件类型。我不经常使用PHP中的文件,但我会仔细检查文件系统函数,GD,以及其他任何可能能够快速查看的内容#34;在文件中,根据预览做出决定。