PHPでホットリンクを防ぐ方法を詳しく解説

小云云
リリース: 2023-03-19 20:02:02
オリジナル
2880 人が閲覧しました

この記事では、主に 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 を取得できる状況は以下のとおりです。 1. を直接使用します 2. 以下の状況では取得できません:
2. Submit または を使用してフォームを送信します (POST または GET)。3. Jscript (POST または GET) を使用して送信されたフォーム

1.お気に入りからリンク2. 「ホーム」またはカスタマイズしたアドレスをクリックします

3. Jscript の location.href または location.replace() を使用します

4.ブラウザにアドレスを直接入力します

5. <%Response.Redirect%>

6. <%Response.AddHeader%> または 7. XML を使用してアドレスをロードします

strrpos 関数の説明:

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

説明

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

文字列 $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 で検索できます🎜🎜 関連する推奨事項: 🎜🎜🎜php盗難防止リンクをクラックする🎜🎜🎜🎜PHP 盗難防止を完了するチェーンメソッドの詳細な説明🎜🎜🎜🎜phpアンチホットリンクコード🎜🎜🎜🎜🎜

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

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