使用图像文件防止空字节攻击

时间:2015-07-09 20:18:09

标签: php

根据我在网上看到的,为防止空字节攻击,我应该在所有用户输入上使用以下内容:

$data = str_replace(chr(0), '', $data);

对我有意义。但是,如何在用户通过表单上传的图像上执行此操作?我没有太多处理这类图像的经验。

我假设你不能这样做:

$_FILES['pic']['tmp_name'] = str_replace(chr(0), '', $_FILES['pic']['tmp_name']);

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,PHP不再容易受到这种攻击。尝试打开名称包含空字节的文件现在将失败,而不是打开意外文件。

即使在易受此攻击的PHP版本中,上传文件也无需过滤。用于上传文件的临时文件名由PHP内部生成,并且不包含空字节或任何其他"令人惊讶的"特殊字符,例如空格。