| 導購 | 订阅 | 在线投稿
分享
 
 
 

PHP如何禁止圖片文件的被盜鏈

來源:互聯網網民  2008-12-28 07:39:38  評論

1、假設充許連結圖片的主機域名爲:www.test.com

2、修改httpd.conf

SetEnvIfNoCase Referer "^http://www.test.com/" local_ref=1

<FilesMatch ".(gif|jpg)">

Order Allow,Deny

Allow from env=local_ref

</FilesMatch>

這個簡單的應用不光可以解決圖片盜鏈的問題,稍加修改還可以防止任意文件盜鏈下載的問題。

使用以上的方法當從非指定的主機連結圖片時,圖片將無法顯示,如果希望顯示一張「禁止盜鏈」的圖片,我們可以用mod_rewrite 來實現。

首先在安裝 apache 時要加上 --enable-rewrite 參數加載 mod_rewrite 模組。

假設「禁止盜鏈」的圖片爲abc.gif,我們在 httpd.conf 中可以這樣配置:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?test.com /.*$ [NC]

RewriteRule .(gif|jpg)$ http://www.test.com/abc.gif [R,L]

當主機的圖片被盜鏈時,只會看到 abc.gif 這張「禁止盜鏈」的圖片!

一段防盜連的PHP代碼

<?php

$ADMIN[defaulturl] = "http://www.163.com/404.htm";//盜鏈返回的地址

$okaysites = array("http://www.163.com/","http://163.com"); //白名單

$ADMIN[url_1] = "http://www.163.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]");

}

?>

使用方法:將上述代碼保存爲dao4.php

 
特别声明:以上内容(如有图片或视频亦包括在内)为网络用户发布,本站仅提供信息存储服务。
 
1、假設充許連結圖片的主機域名爲:[url=http://www.test.com]www.test.com[/url] 2、修改httpd.conf SetEnvIfNoCase Referer "^http://www.test.com/" local_ref=1 <FilesMatch ".(gif|jpg)"> Order Allow,Deny Allow from env=local_ref </FilesMatch> 這個簡單的應用不光可以解決圖片盜鏈的問題,稍加修改還可以防止任意文件盜鏈下載的問題。 使用以上的方法當從非指定的主機連結圖片時,圖片將無法顯示,如果希望顯示一張「禁止盜鏈」的圖片,我們可以用mod_rewrite 來實現。 首先在安裝 apache 時要加上 --enable-rewrite 參數加載 mod_rewrite 模組。 假設「禁止盜鏈」的圖片爲abc.gif,我們在 httpd.conf 中可以這樣配置: RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://([url=http://www.)?test.com]www.)?test.com[/url] /.*$ [NC] RewriteRule .(gif|jpg)$ [url=http://www.test.com/abc.gif]http://www.test.com/abc.gif[/url] [R,L] 當主機的圖片被盜鏈時,只會看到 abc.gif 這張「禁止盜鏈」的圖片! 一段防盜連的PHP代碼 <?php $ADMIN[defaulturl] = "[url=http://www.163.com/404.htm]http://www.163.com/404.htm";//[/url]盜鏈返回的地址 $okaysites = array("[url=http://www.163.com/]http://www.163.com/","http://163.com[/url]"); //白名單 $ADMIN[url_1] = "[url=http://www.163.com/download/]http://www.163.com/download/";//[/url]下載地點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]"); } ?> 使用方法:將上述代碼保存爲dao4.php
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有