ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでのホットリンクを防止するためのいくつかのコード

PHP_PHP チュートリアルでのホットリンクを防止するためのいくつかのコード

WBOY
WBOYオリジナル
2016-07-13 16:56:19921ブラウズ

ここで説明するアンチホットリンク コードは、PHP ソリューションのみに焦点を当てています。もちろん、サーバー管理権限または htaccess ファイル操作を持っている場合は、PHP アンチホットリンク コードを使用しないことをお勧めします。

最初に最も単純なものを見てみましょう
以下はphpで実装されたコードです。xxx.mp3は音楽ファイルの実際のアドレスであり、外部に配布する場合はphpのアドレスのみが公開され、mp3のアドレスは外部に公開されません。

コードは次のとおりですコードをコピー if(strpos($_SERVER['HTTP_REFERER'], 'qq.com') !== FALSE) {
header('HTTP/1.1 404 が見つかりません');
終了します;
}
readfile('xxx.mp3');
?>
ホワイトリストに追加する方法

コードは次のとおりですコードをコピー /**
* @著者セラフィム
* @copyright 2012
*/
$ADMIN = 配列(
'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) {
$はい = 0; while (list($domain, $subarray) = each($okaysites)) {
if (ereg($subarray, "$reffer")) {
$はい = 1; }
}
$theu = 'url_' . $_GET['サイト']; $file = $_GET['ファイル']
if ($ADMIN[$theu] および $yes == 1) {
header("場所: $ADMIN[$theu]/$file"); } その他 {
header("場所: $ADMIN[defaulturl]"); }
} その他 {
header("場所: $ADMIN[defaulturl]"); }
print_r($_SERVER['HTTP_REFERER']); ?>



インスタンス 3 [ホワイトリスト 2 をサポート]



コードは次のとおりです

コードをコピー

$ADMIN[defaulturl] = "http://www.bKjia.c0m/404.htm";//ホットリンクによって返されるアドレス $okaysites = array("http://www.bKjia.c0m/","http://bKjia.c0m"); //ホワイトリスト $ADMIN[url_1] = "http://www.bKjia.c0m/download/";//ダウンロード場所 1 $ADMIN[url_2] = "";//ダウンロード場所 2 など $reffer = $HTTP_REFERER; if($reffer) { $はい = 0;

while(list($domain, $subarray) = each($okaysites)) {

if (ereg($subarray,"$reffer")) {

$はい = 1;
}
}
$theu = "url"."_"."$site";

if ($ADMIN[$theu] AND $yes == 1) {

header("場所: $ADMIN[$theu]/$file");
} その他 {
header("場所: $ADMIN[defaulturl]");
}
} その他 {
header("場所: $ADMIN[defaulturl]");
}

?>




アンチホットリンクを実装するにはさまざまな方法があります。たとえば、一部のサイトでは HTML を生成しますが、これは iis、apache、htaccess ではあまり便利ではありません。


http://www.bkjia.com/PHPjc/631618.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/631618.html

技術記事

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。