この記事では、主に PHP におけるホットリンク対策の方法を紹介し、PHP ホットリンク対策に関連する関連技術と具体的な実装テクニックを例の形式で分析します。必要な方は、以下を参照してください。
この記事の例では、PHP でホットリンクを防ぐ方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:
$_SERVER['HTTP_REFERER']
取得ステータス
Note $_SERVER ['HTTP_REFERER '] は常に取得できるわけではなく、次の状況でのみ取得できます。
1. HTTP_REFERER を取得できる状況は次のとおりです。
1. cfba799dd43fce78ec3e9e3d200b7e482 を直接使用します。フォームは 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
関数の説明:
Description
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )文字列 $haystack 内で最後に出現したニードルの位置を数値で返します。
$haystack
$needle | needle が文字列でない場合は、整数に変換され、文字の連続した値として扱われます。 |
#戻り値 |
ホットリンク判定コード: asd.php<?php
//防盗链技术
//先判断是否获取到 $_SERVER['HTTP_REFERER'] 变量
if(isset($_SERVER['HTTP_REFERER'])){
//判断$_SERVER['HTTP_REFERER']是不是以http://localhost/开始的
if(strpos($_SERVER['HTTP_REFERER'],"http://localhost")==0){
echo '<img src="a.png"/>';
}
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 サイトの他の関連記事を参照してください。