ホームページ  >  記事  >  バックエンド開発  >  PHP でアンチホットリンクを実装する方法の例

PHP でアンチホットリンクを実装する方法の例

黄舟
黄舟オリジナル
2017-07-26 14:58:082151ブラウズ

この記事では、主に PHP でのホットリンク対策の方法を紹介し、PHP でのホットリンク対策に関連する関連技術と具体的な実装テクニックを例の形式で分析します。 PHP でのアンチホットリンクの方法について説明します。参考までに皆さんと共有してください。詳細は以下の通りです:

$_SERVER['HTTP_REFERER'] の取得状況

$_SERVER['HTTP_REFERER']的获取情况

注意 $_SERVER['HTTP_REFERER'] 并不一定总能获取到,只有在以下情况下才能获取到:

一、能够取到HTTP_REFERER的情况为以下几种:

1.直接用cfba799dd43fce78ec3e9e3d200b7e48
2.用Submit或764a0a970dbc75966e734f5ea597d024提交的表单(POST or GET)
3.使用Jscript提交的表单(POST or GET)

二、不能取到的情况有以下几种:

1.从收藏夹链接
2.单击”主页”或者自定义的地址
3.利用Jscript的location.href or location.replace()
4.在浏览器直接输入地址
5.c37f721670919360921ccb8afc9eb479
6.707ab8d2056c6e1f516d2bf3c9988ff9或d2eacb9d552db150e90498bcd18784f7转向
7.用XML加载地址

strrpos函数讲解:

strrpos — 计算指定字符串在目标字符串中最后一次出现的位置

说明

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )<br>
$_SERVER['HTTP_REFERER'] は常に取得できるとは限りません、以下の状況でのみ取得可能です。

1. HTTP_REFERER を取得できる状況は以下のとおりです。 cfba799dd43fce78ec3e9e3d200b7e48を直接使用します 2. 以下の状況では取得できません: 2. 「ホーム」またはカスタマイズしたアドレスをクリックします3. Jscript の location.href または location.replace() を使用します4.ブラウザにアドレスを直接入力します
2. Submit または 764a0a970dbc75966e734f5ea597d024 を使用してフォームを送信します (POST または GET)。3. Jscript (POST または GET) を使用して送信されたフォーム
1.お気に入りからリンク
5. c37f721670919360921ccb8afc9eb479

6. 707ab8d2056c6e1f516d2bf3c9988ff9 または d2eacb9d552db150e90498bcd18784f7 7. XML を使用してアドレスをロードします strrpos 関数の説明:

strrpos — ターゲット文字列内で指定された文字列が最後に出現する位置を計算します

説明


int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )<p></p>文字列 $haystack 内で最後に出現したニードルの位置を数値で返します。


$haystack


この文字列内を検索します。

$needle

needle が文字列でない場合は、整数に変換され、文字の連続した値として扱われます。

🎜🎜🎜戻り値🎜🎜🎜針が存在する位置を返します。見つからない場合は FALSE を返します。 🎜🎜ホットリンク検出コード: asd.php🎜🎜🎜🎜
<?php
//防盗链技术
//先判断是否获取到 $_SERVER[&#39;HTTP_REFERER&#39;] 变量
if(isset($_SERVER[&#39;HTTP_REFERER&#39;])){
  //判断$_SERVER[&#39;HTTP_REFERER&#39;]是不是以http://localhost/开始的
  if(strpos($_SERVER[&#39;HTTP_REFERER&#39;],"http://localhost")==0){
    echo &#39;<img src="a.png"/>&#39;;
  }
  else{
    header("Location:warning.php");//跳转页面到warning.php
    //echo $_SERVER["HTTP_REFERER"];
  }
}
else {
  header("Location:warning.php");
}
?>
🎜warning.php🎜🎜🎜🎜
<html>
<b>倒链</b>
</html>
🎜アンチホットリンク検証コード🎜🎜🎜🎜
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="http://localhost/wml/asd.php" rel="external nofollow" >验证防盗链</a>
</body>
</html>
🎜上記は理解原則です🎜🎜通常、サーバーを次のように設定することで、 nginx などのホットリンクを防止する 🎜🎜🎜(gif|jpg|jpeg|png|bmp|swf) 🎜 およびその他のファイル🎜 にアクセスするためのホワイトリストを設定する

以上がPHP でアンチホットリンクを実装する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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