php防盗链几种代码
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-03 09:10:47 浏览: 评论:0
我们这里讲述的防盗链代码只专注于php的解决方案,当然如果你有服务器管理权限或htaccess文件操作我建义不要用php防盗链哦。
先来看个最简单的,下面是php实现的代码,xxx.mp3就是你的音乐文件的实际地址,对外传播的时候只传播php地址,mp3地址对外不公开,代码如下:
- <?php
- if(strpos($_SERVER['HTTP_REFERER'], 'qq.com') !== FALSE) {
- header('HTTP/1.1 404 Not Found');
- exit;
- }
- readfile('xxx.mp3');
- ?>
可以加入白名单的做法,代码如下:
- <?php
- /**
- * @author seraphim
- * @copyright 2012
- */
- $ADMIN = array(
- 'defaulturl'=> 'http://www.xx.com/images/banner-header.gif', //盗链返回的地址
- 'url_1' => 'http://www.xx.net/file',
- 'url_2' => 'http://www.xx.net/file1',
- );
- $okaysites = array(
- 'http://box.baidu.com',
- 'http://tieba.baidu.com/p/1493336008', //白名单
- 'http://www.xx.com/1.html',
- );
- $reffer = $_SERVER['HTTP_REFERER'];
- if ($reffer) {
- $yes = 0;
- while (list($domain, $subarray) = each($okaysites)) {
- if (ereg($subarray, "$reffer")) {
- $yes = 1;
- }
- }
- $theu = 'url_' . $_GET['site'];
- $file = $_GET['file'];
- if ($ADMIN[$theu] and $yes == 1) {
- header("Location: $ADMIN[$theu]/$file");
- } else {
- header("Location: $ADMIN[defaulturl]");
- }
- } else {
- header("Location: $ADMIN[defaulturl]");
- }
- print_r($_SERVER['HTTP_REFERER']);
- ?>
支持白名单二,代码如下:
- <?php
- $ADMIN[defaulturl] = "http://www.phpfensi.com/404.htm";//盗链返回的地址
- $okaysites = array("http://www.phpfensi.com/","http://phpfensi.com"); //白名单
- $ADMIN[url_1] = "http://www.phpfensi.com/download/";//下载地点1
- $ADMIN[url_2] = "";//下载地点2,以此类推
- $reffer = $HTTP_REFERER;
- if($reffer) {
- $yes = 0;
- while(list($domain, $subarray) = each($okaysites)) {
- if (ereg($subarray,"$reffer")) {
- $yes = 1;
- }
- }
- $theu = "url"."_"."$site";
- if ($ADMIN[$theu] AND $yes == 1) {
- header("Location: $ADMIN[$theu]/$file");
- } else {
- header("Location: $ADMIN[defaulturl]");
- }
- } else {
- header("Location: $ADMIN[defaulturl]");
- }
- ?>
还有很多的方法来实现防盗链本文章只讲到了利用php实现,像有些站生成了html这样做起来就不怎么方便了,我们可以在iis,apache,htaccess来操作。
Tags: php 防盗链 代码
- 上一篇:php中ip地址转换为数字方法
- 下一篇:php无限分类可支持输出树状图实现代码
相关文章
- ·PHP 是什么?(2013-11-12)
- ·Php.ini文件位置在哪里 Php.ini文件找不到(2013-11-12)
- ·PHP 数据类型(2013-11-12)
- ·php 获取当前脚本的url(2013-11-12)
- ·php技术生成静态页面的实现(2013-11-13)
- ·缺陷月项目启动 披露PHP脚本语言漏洞(2013-11-13)
- ·在PHP中全面阻止SQL注入式攻击(2013-11-13)
- ·php生成随机密码的几种方法(2013-11-13)
- ·PHP中使用FCKeditor2.3.2配置(2013-11-13)
- ·如何使用PHP开发高效的WEB系统(2013-11-13)
- ·php:树形结构的算法(2013-11-13)
- ·php4和php5区别(2013-11-13)
- ·php数据库连接(2013-11-13)
- ·如何正确理解PHP的错误信息(2013-11-13)
- ·php页面漏洞分析及相关问题解决(2013-11-13)
- ·当在连接PHP时,抱怨一些数值没有定义参考?(2013-11-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)