关于php进行简单的防盗链!
首先,简单解释一下什么是防盗链。对于网站中的一个页面,我只允许本服务器的页面跳到该页面,如果有非本服务器的页面想跳到本页面,就给他返回一个我们自己指定的错误页面!
其次,这个只是我在学习过程中一个简单的总结,只是简单的防盗链,如果有高手可以修改底层的东西,这个就不起作用了,本人能力有限,如果有错的地方,希望大神们指正!
第三,所用到的知识,在php中有个超全局变量:$_SERVER ,这是一个数组,key值为$_REFERENCE时说明的是他的服务器名!若是一个不在服务器中的页面跳到该页面时,它是没有$_REFERENCE这个变量的。 第四,就是利用一个if语句,如果跳转到该页面的那个页面不属于任何服务器,那么它是没有$_REFERENCE这个值的!如果是属于别的服务器那么只需利用strpos这个函数判断一下是不是本服务器的就可以了! 先这么一说,代码回去再上传上来。希望得到大家支持!
如果有这样一段代码:
look.php
1 <?php 2 if(isset($_SERVER['HTTP_REFERER'])){ 3 if(strpos($_SERVER['HTTP_REFERER'],"http://localhost/service")==0) 4 { 5 echo "姓名:小俎俎<br/>"; 6 echo "性别:男<br/>"; 7 echo "年龄:20<br/>"; 8 } 9 else 10 { 11 echo "fuck,盗链者你是"; 12 } 13 } 14 else 15 { 16 echo "fuck,你是盗链者"; 17 } 18 ?>
a.php
<a href="http://localhost/service/look.php">查看</a>
如果我把这个a.php放在我的apache目录下,则可以正常看到我打印的信息,但如果我把a.php放在桌面上(前提是你未把桌面所在那个目录设为你的apache服务器目录),则看到的是 fuck,你是盗链者 好,防盗链算是初步成功了!2013-10-09

浙公网安备 33010602011771号