我正在阅读有关 PHP 的安全性内容,我现在最关心的是用户文件上传表单。我读过很多,一些用户可能会通过更改扩展名甚至操纵标题和 mimetype 来上传似乎是其他东西的文件。我明白这一点。
但我的问题是,如果我重命名任何上传的文件并将其移动到他们不知道的目录,这将是一个问题。
请让我知道这是否足够,如果不够,请给我一些标题,说明我应该执行哪些额外的安全检查
非常感谢
我正在阅读有关 PHP 的安全性内容,我现在最关心的是用户文件上传表单。我读过很多,一些用户可能会通过更改扩展名甚至操纵标题和 mimetype 来上传似乎是其他东西的文件。我明白这一点。
但我的问题是,如果我重命名任何上传的文件并将其移动到他们不知道的目录,这将是一个问题。
请让我知道这是否足够,如果不够,请给我一些标题,说明我应该执行哪些额外的安全检查
非常感谢
您可能会在后台运行防病毒扫描守护程序,例如配置的 avscand。用于扫描受感染文件并将其移动到隔离目录。这应该可以防止以后将受感染的文件传回给人们。配置自动病毒库更新。回过头来,我确实做过这样的事情,所以调查一下。
将文件名简单地重命名为带有安全字符的名称就足够了;每个用户当然分开。
To have a more secure site the following needs to happen:
upload_max_filesize
to something sensibleupload_tmp_dir
to something sensible, that the user may not access. See Setting PHP tmp dir - PHP upload not working file
command to get the type of the data without executing it这实际上取决于您的在线应用程序想要实现的目标。如果您希望直接限制访问已上传的文件,则应为上传区域的父文件夹设置文件夹权限以阻止用户访问。然后在您的数据库中,您可以记录到路径并仅通过 http 响应托管文件。这将确保不会访问任何可能有害的文件,并且用户仍然可以上传他们的感受。作为一个额外的步骤,您可以在托管每个文件时为其添加错误的文件扩展名,然后在提供该文件时将其删除。