php防盗链代码,php隐藏文件真实地址

发布时间:2020-07-04编辑:脚本学堂
有关php防盗链的一段代码,在php中提供文件下载的地方,隐藏掉文件的真实地址,起到防止盗链下载的功能,需要的朋友参考下。

php实现的文件下载程序中,一定要做好防盗链,尤其是防迅雷盗链下载。

网上已有的apache 防盗链的多种方法,不能完全防止迅雷的,迅雷可以完全模拟http行为,这点真让人头疼。

例子,php 防盗链来解决这个问题。
 

复制代码 代码示例:
<?  
$site="plcxue.com/docs";  
$http_reffer=$_SERVER['HTTP_REFERER'];  
if(strstr($http_reffer,$site)==null)  
{  
    exit("本站仿盗链,请到www.plcxue.com上下载!");  
}  
 
$softlinks="uploadfiles/200805/logo.rar";  
$clientfilename="网站LOGO";  
$fieltype=explode(".", $softlinks);  
$fieltype=$fieltype[count($fieltype)-1];  
if(fopen($softlinks,"r"))   
{  
    $clientfilename=$clientfilename.".".$fieltype;   
 
    header("Pragma: public");  
    header("Expires: 0");  
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");   
    header("Content-Type: application/octet-stream");  
    header( "Content-Disposition: attachment; filename="$clientfilename"");  
    header( "Content-Description: File Transfert");  
 
    @readfile($softlinks);  
}  
else 
{  
    echo("对不起~~文件出错!请联系客服!");  
}     
?> 

测试结果:
可以使用迅雷下载,但是不能使用迅雷盗链。
若发现迅雷仍然可以模拟http头下载,可以考虑更改http头,拦截盗链。