盗链:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 比较常见的就是直接把别的网站图片链接直接放在自己的网站上,这样加载图片就会消耗被盗网站的资源。所以为了防止额外的资源消耗需要做防盗链处理。
一般防盗链有两种处理方法:
1.判断referer来源
location ~ .*\.(gif|png|image|jpg)$ {
valid_referers none blocked baletu.com *.baletu.com;
if ($invalid_referer) {
#return 403;
rewrite ^/ https://www.baidu.com/img/bd_log1.png;
}
}
2.做签名验证
前端:
$sign = md5('mypass' . $_SERVICE['REMOTE_ADDR']); // mypass -- 自定义字符串 mypass+ip
<img src="http://img.xz7.com/up/2016-1/2016115173626.png?sign=<?= $sign ?>">
nginx:
参数说明:
accesskey on|off 模块开关
accesskey_hashmethod md5|sha-1 签名加密方式
accesskey_arg 参数名称
accesskey_signature 加密规则
location ~ .*\.(gif|png|image|jpg)$ {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "sign";
accesskey_signature "mypass$remote_addr"; # $remote_addr --- 客户端ip
}