httpを渡したためにgetimagesize関数を使用できなくなるセキュリティリスクであると言われたため、allow_url_fopenを無効にするこのホストがあります。
私のサイトはWordpressにあり、getimagesizeを使用して、明らかにhttp://を含むWordpressサイトのuploadsフォルダー内の画像を取得しています。
だから私の質問は、これが安全ではないかどうかです。安全でない場合、Wordpress環境内でこれをどのように行うことができますか?
ありがとう。
httpを渡したためにgetimagesize関数を使用できなくなるセキュリティリスクであると言われたため、allow_url_fopenを無効にするこのホストがあります。
私のサイトはWordpressにあり、getimagesizeを使用して、明らかにhttp://を含むWordpressサイトのuploadsフォルダー内の画像を取得しています。
だから私の質問は、これが安全ではないかどうかです。安全でない場合、Wordpress環境内でこれをどのように行うことができますか?
ありがとう。
ホストが考えている可能性が高いセキュリティリスクは、人々がinclude()リモートホストからスクリプトを作成しようとする場所です。HTTPのfopenラッパーを有効にすると、通常、これが有効になります。(もちろん、この動作を無効にすることはできますが、ほとんどのホストは気にせず、十分な注意を払ってこれらの要求をブロックするだけです。他の問題も存在します。)
のセキュリティに関してgetimagesize()は、ソースイメージをどのように取得したかは関係ありません。cURLまたはfopenラッパー...違いはありません。任意のコンテンツで使用するのはほとんど安全ですがgetimagesize()、過去にさまざまな画像ライブラリの脆弱性が発見されているので注意してください。
解決策は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];