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

PHP でアンチリーチングを実装する方法

不言
不言オリジナル
2018-06-08 09:23:186645ブラウズ

この記事では、主に PHP におけるホットリンク対策の方法を紹介し、PHP ホットリンク対策に関連する関連技術と具体的な実装テクニックを例の形式で分析します。必要な方は、以下を参照してください。

この記事の例では、PHP でホットリンクを防ぐ方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

$_SERVER['HTTP_REFERER'] 取得ステータス

Note $_SERVER ['HTTP_REFERER '] は常に取得できるわけではなく、次の状況でのみ取得できます。

1. HTTP_REFERER を取得できる状況は次のとおりです。

1. cfba799dd43fce78ec3e9e3d200b7e48

2 を直接使用します。フォームは Submit または 764a0a970dbc75966e734f5ea597d024 (POST または GET) で送信されます。 Jscript (POST または GET) を使用してフォームを送信しました。

2. 次の状況は取得できません。 1.お気に入りからリンク

2. [ホーム] またはカスタマイズしたアドレス

3 をクリックします。 Jscript の location.href または location.replace()
4 を使用します。ブラウザにアドレス##5を直接入力してください。 c37f721670919360921ccb8afc9eb479
6. 707ab8d2056c6e1f516d2bf3c9988ff9 または d2eacb9d552db150e90498bcd18784f7#7 に進みます。 XML を使用してアドレスをロードします。

#strrpos
関数の説明:

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

Description

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

文字列 $haystack 内で最後に出現したニードルの位置を数値で返します。


$haystack

この文字列内で検索します。 $needleneedle が文字列でない場合は、整数に変換され、文字の連続した値として扱われます。 針が存在する位置を返します。見つからない場合は 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 中国語 Web サイトをご覧ください。 ! 関連する推奨事項:

php 複数インターフェイスの実装方法、php 実装

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

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