防盗链

来源:互联网 发布:淘宝大学免费教程 编辑:程序博客网 时间: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的合法性。

原创粉丝点击