Proteger um proxy php?

Então, no meu site (https://example.com) eu tenho uma página que analisa a API last.fm e retira as imagens do CDN do akamai e as exibe na página.

A única coisa é que todas as imagens são servidas apenas em HTTP, https não é suportado.

por exemplo:http://userserve-ak.last.fm/serve/64s/76030502.png

Eu tenho um proxy de imagem escrito em php:

<?php
header('Content-Type: image/png');
if(isset($_GET['img'])){echo file_get_contents($_GET['img']);}
?>

Isso funciona perfeitamente, no entanto, não é seguro em tudo, eu quero que apenas o meu servidor pode usar o proxy de imagem e, como tal, um hash na URL pode ser a melhor opção?

https://example.com/proxy.php?url=http://last.fm/image.jpg&hash=hashhere

Eu pensei em usar:

md5($_GET['img']."privatekeyhere");

Então, meu problema virou-se para, como colocar a chave privada no código javascript sem o mundo inteiro ter acesso a ele?

Qualquer ajuda muito apreciada.

Eu já escrevi este script que é um pouco eficaz, mas ainda está aberto a ser contornado:

<?php
$args = $_GET['q'];
$date = date('m-d-Y-h-i', time());

list($hash,$img,$auth) = explode("/", $args);

if($hash=="need" && $auth=="key"){
    $checksum = md5($img.$date);
    echo $checksum;
}

if($hash==md5($img.$date))
{
    header('Content-Type: image/png');
    echo file_get_contents('http://userserve-ak.last.fm/serve/64s/' . $img);
}
?>

Isso pode ser chamado assim:https://www.mylesgray.com/lastfm/need/76030502.png/key

O código de autenticação pode então ser conectado para exibir a imagem:https://www.mylesgray.com/lastfm/{code-here}/76030502.png

No entanto, não demora muito para alguém descobrir que eles podem configurar um script para pesquisar uma chave a cada minuto - algum conselho?

questionAnswers(1)

yourAnswerToTheQuestion