使用PHP getimagesize函数有任何危险吗?

使用PHP getimagesize函数有任何危险吗?,php,Php,我的主机禁用了allow_url_fopen,因为他们说这是一种安全风险,这反过来会阻止我使用getimagesize函数,因为我正在传递http 我的站点在Wordpress上,我使用getimagesize在Wordpress站点的uploads文件夹中拉入一个图像,该站点显然包含http:// 所以我的问题是这是否不安全?如果不安全,如何在Wordpress环境中实现 谢谢。好的,解决方法是使用CURL。所以像这样的东西会有用的 $filename = "http://www.exampl

我的主机禁用了allow_url_fopen,因为他们说这是一种安全风险,这反过来会阻止我使用getimagesize函数,因为我正在传递http

我的站点在Wordpress上,我使用getimagesize在Wordpress站点的uploads文件夹中拉入一个图像,该站点显然包含http://

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


谢谢。

好的,解决方法是使用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];

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


getimagesize()
的安全性而言,如何获取源图像无关紧要。卷曲或折叠包装纸。。。没什么区别。在任意内容上使用
getimagesize()
基本上是安全的,但请注意,过去在各种图像库中都发现了漏洞。

allow\u url\u fopen
可能很危险,但是,
getimagesize
我认为不安全。是的,但是必须启用allow\u url\u fopen才能完成我需要做的事情。你知道还有别的办法吗?我知道传入服务器环境是安全的$\u server['DOCUMENT\u ROOT'],但是这可能不可能,因为我正在使用Wordpress本机函数从wp content/uploads文件夹中提取图像。