0

phpスクリプトを実行して画像スクリプトを取得するようには見えません.画像placeholder.jpgはpublic_html webrootの外にあり、これが私がすることです

画像の .php ファイルを表示

<img src="image.php?image=<?php echo urlencode('placeholder.jpg') ?>"/>

image.php

<?php

    $file = basename(urldecode($_GET['image']));
    $fileDir = '/noaccess/avatars/';

    if (file_exists($fileDir . $file))
    {
        $contents = file_get_contents($fileDir . $file);

        header('Content-type: image/jpg');

        echo $contents;
    }

?>
4

1 に答える 1

2

この種のスクリプトを実行することは非常に安全ではありません。ハッカーにファイル システムへのアクセスを許可しているためです。ハッカー../はフォルダーを移動するために使用できることを覚えていますが、とにかくこれを試してください。

<?php

    $file = basename(urldecode($_GET['image']));
    $fileDir = $_SERVER['DOCUMENT_ROOT'] . 'noaccess/avatars/';

    if (file_exists($fileDir . $file))
    {
        $imageRes = imagecreatefromjpeg($fileDir . $file);
        header('Content-Type: image/jpeg');
        // Output the image
        @imagepng($imageRes);
        // Free up memory
        @imagedestroy($imageRes);
        die();
    }

?>
于 2013-05-01T22:58:39.190 に答える