所以,在我的网站(https://example.com)我有一个解析last.fm API和拉回图像了他们Akamai的CDN并将其显示在页面上的页面。
事情是所有的图像都供职于只允许HTTP,HTTPS,不支持。
例如: http://userserve-ak.last.fm/serve/64s/76030502.png
我有一个PHP编写的图片代理:
<?php
header('Content-Type: image/png');
if(isset($_GET['img'])){echo file_get_contents($_GET['img']);}
?>
这完美的作品,但是,是不是安全可言,我想,这样只有我的服务器可以使用图片代理,并为在URL这样的哈希值可能是最好的选择吗?
https://example.com/proxy.php?url=http://last.fm/image.jpg&hash=hashhere
我曾想过使用:
md5($_GET['img']."privatekeyhere");
然后我的问题变成,如何我把javascript代码的私有密钥,而无需访问它的整个世界?
任何帮助非常赞赏。
因为我已经写了这个剧本是有点效果,但仍然被规避开放:
<?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);
}
?>
这可以被称为像这样: https://www.mylesgray.com/lastfm/need/76030502.png/key
然后,AUTH码可以插入在以显示图像: https://www.mylesgray.com/lastfm/{code-here}/76030502.png
任何意见 - 但是有人找出他们可以建立一个脚本,每分钟轮询的关键它并不需要很长时间?