防盗链
来源:互联网 发布:淘宝大学免费教程 编辑:程序博客网 时间:2024/05/16 02:00
之前一个同事问我,如何防图片盗链
其实放盗链和防止站外post的原理差不多,需要用到HTTP协议中的一个头域名
Referer头域
Referer头域允许客户端指定请求uri的源资源地址,这可以允许服务器生成回退链表,可用来登陆、优化cache等。
它也允许废除的或错误的连接由于维护的目的被追踪。
如果请求的uri没有自己的uri地址,Referer不能被发送。
如果指定的是部分uri地址,则此地址应该是一个相对地址。
例如:我们在浏览器中打开网址:image.baidu.com
随便找一个图片的请求,查看一下http头信息:
所以我们只要在程序中判断一下请求的来源是否合法,就可以判断是否是盗链了:
<?phpif (strrpos($_SERVER['HTTP_REFERER'], 'www.test.com') !== false) {$file_name = '1.jgp';} else {$file_name = 'error.jpg';}echo file_get_contents($file_name);
防止非法POST数据的原理也差不多,除了密钥之外,还可以通过$_SERVER['HTTP_REFERER']来判断post的合法性。