この記事では、主に PHP におけるホットリンク対策の方法を紹介し、PHP ホットリンク対策に関連する関連技術と具体的な実装テクニックを例の形式で分析します。必要な方は、以下を参照してください。
この記事の例では、PHP でホットリンクを防ぐ方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです:
$_SERVER['HTTP_REFERER']
取得ステータス
Note $_SERVER ['HTTP_REFERER '] は常に取得できるわけではなく、次の状況でのみ取得できます。
1. HTTP_REFERER を取得できる状況は次のとおりです。
1.2 を直接使用します。フォームは Submit または (POST または GET) で送信されます。 Jscript (POST または GET) を使用してフォームを送信しました。
2. 次の状況は取得できません。 1.お気に入りからリンク
2. [ホーム] またはカスタマイズしたアドレス3 をクリックします。 Jscript の location.href または location.replace()
4 を使用します。ブラウザにアドレス##5を直接入力してください。 <%Response.Redirect%>
6. <%Response.AddHeader%> または #7 に進みます。 XML を使用してアドレスをロードします。
#strrpos
関数の説明:
Description
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
$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");
}
?>
<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 サイトの他の関連記事を参照してください。