【发布时间】:2012-05-28 19:41:15
【问题描述】:
我目前正在使用HTTP_RAW_POST_DATA 并将其保存到图像文件中。我需要注意任何可利用的安全问题吗?
【问题讨论】:
我目前正在使用HTTP_RAW_POST_DATA 并将其保存到图像文件中。我需要注意任何可利用的安全问题吗?
【问题讨论】:
安全隐患与任何其他文件上传机制相同。您可能有语义含义,因为 POST 正文可能不是原始数据,例如如果它是quoted-printable编码或压缩的。
【讨论】:
是的,如果我的 POST 身体看起来像......
<?php
rmdir(__DIR__ . '/../');
...我可以通过 URL 访问该文件(仅当您的图像扩展名设置为运行 PHP,不太可能但可能),或者您运行它(例如,不小心 include 它),您将有麻烦了。
如果您想安全,请将文件存储在文档根目录之上,并使用图像处理库(如 GD)从字符串写入图像并保存该输出。如果它是一个恶意文件,你应该只得到一个垃圾输出的图像。
【讨论】:
eval() POST 正文。
filename.php.jpg 并且 apache 配置为启用了 MultiViews 选项,则这是可能的。
include 而不是readfile() 输出图像博客的PHP 文件之类的东西被入侵。你的最后一句话是什么意思?