我有这个主机禁用allow_url_fopen,因为他们说这是一个安全风险反过来阻止我使用getimagesize函数,因为我传入了一个http。
我的网站在Wordpress上,我使用getimagesize在Wordpress网站的uploads文件夹中提取图像,该网站显然包含http://。
所以我的问题是,如果这不安全吗?如果它不安全,如何在Wordpress环境中完成?
感谢。
答案 0 :(得分:0)
您的主机可能会考虑的安全风险是人们尝试include()
来自远程主机的脚本。为HTTP启用fopen包装器时,通常会启用此功能。 (这种行为当然可以被禁用,但大多数主机都不会打扰,并且只是非常谨慎地阻止这些请求。还存在其他问题。)
就getimagesize()
的安全性而言,获取源图像并不重要。 cURL或fopen包装......没有任何区别。在任意内容上使用getimagesize()
几乎是安全的,但要注意过去在各种图像库中发现的漏洞。
答案 1 :(得分:-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];