>我正在编写一个php脚本,其中用户上传一个文件,该文件将被服务器读取以检索一些数据然后删除,一切都发生在同一个脚本中。
像这样:
// Saves the file
// Loads the file (file_get_contents)
// Retrieve data
// Delete file
一些注意事项:
- 在此期间,文件将以随机生成的名称存储。
- 文件将具有允许的最小和最大大小。 在
- 采取任何进一步措施之前,将正确验证检索到的数据
我的问题是:在文件保存和读取过程中,我是否需要采取任何进一步的安全措施?
我希望我的问题很清楚。提前谢谢。
我担心的是上传期间,而不是在您处理文件时。
您需要确保只允许某些类型的文件。 我会避免允许二进制或可执行文件。 看起来你让他们上传了基于文本的文件,所以在你的PHP脚本中,使用类似于这样的检查:
if ($_FILES["uploadedfile"]["type"] != "text/plain") {
// File not the right type ... do not permit upload
}
@LuvnJesus有一个好主意,除了"type"元素是由用户代理设置的。如果可行,更好的主意是使用实际检查文件第一个字节的工具。对于图像,我知道这不是您描述的场景,人们已经学会了以巧妙的方式使用 GD 库来确定文件类型。我不经常使用 PHP 中的文件,但我会仔细检查文件系统函数、GD 以及任何其他可能让您快速"查看"文件并根据该预览做出决策的东西。