php 七牛时间戳防盗链,CDN防盗链时间戳

目前在关注防盗链问题,因为动不动就遇见有人被刷流量,而且很难避免。特别很多站长用上了cdn却没有上防盗链。现在基本上任何一家都有防盗链的设置,做好预防很重要。特别目前的cdn厂商都是基本没什么提示的,被刷了可能也要一两天时间,足够不怀好意的人干很多事了。

其中七牛阿里被吐槽的最多,理由我觉得也很简单,用的人数多,加上这两家也明显不想设置流量计算的带宽限制。阿里好点可以带宽计费,而且可以设置监控。七牛就有点坑了。。。

这里说一下七牛和又拍的时间戳防盗链(又拍叫做token防盗链)。原理就是你指定链接过期时间+文件的url+你的key 这三者md5加密 然后来防止被人长期盗链,针对采集。好处是资源只能存活有限时间,如果要继续查看必须要在我们网站上获得新的链接,缺点是每次都要计算要消耗一定的资源。

又拍算法

下面是又拍的算法

$etime = time() + 600; // 授权十分钟后过期

$key = 'alibaba'; // token 防盗链密钥

$path = '/wp-content/uploads/2018/02/qiniu-409x220.png'; // 图片相对路径

$sign = substr(md5($key.'&'.$etime.'&'.$path), 12,8).$etime;

echo $sign;

值得注意的是,当你开启token防盗链的时候,域名防盗链最好关了,因为这两者是同时生效的(又拍也没说清楚,巨坑)。有一点值得夸奖就是,设置下去的生效速度,又拍几乎是秒级生效,效果明显,然而我们的七牛大概一周 (

七牛算法

下面是七牛的时间戳算法,url和key改成你自己的。

$url="http://domain/1.png?v=1";

$url = explode("?", $url);

$path=basename($url[0]);

$path="/".$path;

$time = time()+3600;

$T=dechex($time);

$key="xxxx";

$S=$key.$path.$T;

$token = md5($S);

$sign =strtolower($token);

if(isset($url[1])){

$url = "http://domain".$path."?".$url[1]."&sign=".$sign."&t=".$T;

echo($url);

}else{

$url = "http://domain".$path."?sign=".$sign."&t=".$T;

echo($url);

}

七牛的话 需要注意的是

如果你访问的资源后面没有任何?xxx的话,需要加?sign而不是&sign,这个是个巨坑,大家注意啊!!!

您可以选择一种方式赞助本站支付宝赞助

a7720da04c2536a2ce7a9133397b9796.gif

微信赞助

a7720da04c2536a2ce7a9133397b9796.gif

分享到各大网站

本博客所有文章如无特别注明均为原创。作者:小乐 ,复制或转载请以超链接形式注明转自 众众帮 。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值