0

我有这个主机禁用了allow_url_fopen,因为他们说这是一个安全风险,这反过来又阻止了我使用getimagesize函数,因为我传入了一个http。

我的网站在 Wordpress 上,我正在使用 getimagesize 将图像拉入 Wordpress 网站的上传文件夹中,该文件夹显然包含 http://。

所以我的问题是这是否不安全?如果不安全,如何在 Wordpress 环境中完成?

谢谢。

4

2 回答 2

0

您的主机可能考虑的安全风险是人们将尝试include()从远程主机执行脚本。当您为 HTTP 启用 fopen 包装器时,通常会启用此功能。(当然可以禁用该行为,但大多数主机都不会打扰,只是出于谨慎而阻止这些请求。其他问题也存在。)

就安全性getimagesize()而言,您如何获得源图像并不重要。cURL 或 fopen 包装器...没有区别。在任意内容上使用它大多是安全的getimagesize(),但要注意过去发现了各种图像库中的漏洞。

于 2012-07-14T04:10:50.090 回答
-1

好的,解决方案是使用 CURL。所以这样的事情会起作用。

$filename = "http://www.example.com/example.jpg";

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $filename);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

$contents = curl_exec($ch);
curl_close($ch);

$new_image = ImageCreateFromString($contents);
imagejpeg($new_image, "temp.jpg",100);

$size = getimagesize("temp.jpg");

// width and height

$width = $size[0];
$height = $size[1];
于 2012-07-14T02:46:39.737 回答