ホームページ > バックエンド開発 > PHPチュートリアル > PHPを使ったホットリンクを防ぐ方法を詳しく解説

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

巴扎黑
リリース: 2023-03-15 20:40:02
オリジナル
1552 人が閲覧しました

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

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) 🎜 およびその他のファイル🎜 にアクセスするためのホワイトリストを設定する

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

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