我想在我的网站上有一个上传系统,用户只能上传图片。这些图片将在上传时由 PHP 直接调整大小,因此不会存储原始图片。我还需要担心从恶意图像执行的 php 等脚本吗?
问问题
80 次
1 回答
3
您仍然需要考虑以下攻击向量:
上传的图像将在服务器上存储一段时间,如果您的应用程序中存在错误,可能会被用于作恶。
作为图像上传的任何字节垃圾都可能会触发读取上传图像的调整大小代码中的错误,因此与此软件或库保持最新很重要。
除此之外,生成的图像应该被认为是安全的。
更新:
使用 PHP 上传图像总是会导致在某处创建临时文件,可能在共享主机上的其他所有人也在使用的未知“临时文件目录”位置。该文件有一个文件名,并且可能包含恶意内容。尽管文件名是随机生成的,但攻击者可能会猜到并尝试使用它。另一方面,除了不使用不安全的 include/require 语句之外,您无法保护自己免受这种内置 php 机制的影响,因为通常攻击需要 a) 在您的服务器上获取恶意代码并 b) 执行它。
反对它的步骤似乎很明显:为您的 php.ini 配置一个专用的上传目录。通过应用适当的权限和限制来保护它免受文件系统级别的代码执行。不要乱用随机名称生成。将此目录保留在 DOCUMENT_ROOT 之外。
第二种攻击可能是攻击者诱使您的代码读取未上传的非公开文件,以显示其内容。因此,在继续之前检查 $_FILES 中的文件名是否真的是上传的文件是一个很好的主意。
于 2012-10-08T18:37:53.080 回答