php标题内容类型图像/ jpeg安全问题

时间:2010-11-19 14:18:58

标签: php security types

您好我想知道以下是否会构成威胁?该URL是从浏览器检查它是否是一个图片并输出它否则显示“图像不存在”。 我还没有完成if语句。但是我应该把更多的头();输出前的设置或任何其他建议,如果我错过任何一个可以使它更安全。

header('content-type: image/jpeg');
$file = urlencode('http://domain.com/images/file.jpg');
ob_start();
require_once($file);
$out = ob_get_contents();
ob_end_flush();
echo $out;

2 个答案:

答案 0 :(得分:5)

是的,这是一个巨大的安全风险,因为您要求PHP解释远程文件。如果用户可以将任何URI传递给您的脚本,他将能够轻松控制您的服务器。

如果您的安装中提供了URL包装,则应使用cURL函数或简单的file_get_contents(或fopen)调用。

答案 1 :(得分:2)

你绝对不应该使用require_once。

使用readfile()

header('content-type: image/jpeg');
$file = urlencode('http://domain.com/images/file.jpg');
readfile($file);
exit();