PHPにおけるホットリンクを防ぐ方法の例を詳しく解説

墨辰丷
リリース: 2023-03-26 18:14:02
オリジナル
1780 人が閲覧しました

この記事では、主に PHP でのホットリンク対策の方法を紹介し、PHP でのホットリンク対策に関連する関連技術と具体的な実装テクニックを例の形式で分析します。 :

$_SERVER ['HTTP_REFERER']

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

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

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

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

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

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

strrpos函数讲解:

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

说明

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

1. 取得可能 HTTP_REFERER の状況は以下の通りです。 を直接使用します2. Submit または を使用してフォームを送信します (POST または GET)。3. Jscript (POST または GET) を使用して送信されたフォーム 2. 以下の状況では取得できません: 1.お気に入りからリンク3. Jscript の location.href または location.replace() を使用します4.ブラウザにアドレスを直接入力します5. <%Response.Redirect%>
2. 「ホーム」またはカスタマイズしたアドレスをクリックします
6. <%Response.AddHeader%> または 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)

およびその他のファイルのホワイトリスト

特定の設定は Baidu で検索できます

🎜 関連する推奨事項: 🎜🎜 🎜Nginx🎜アンチホットリンク🎜とNginxアクセス制御とNginx解析php構成🎜🎜🎜🎜🎜PHPの実装方法🎜アンチホットリンク🎜詳細な説明🎜🎜🎜🎜🎜phpクラック🎜アンチホットリンク🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート