この記事では、不正アクセスを防ぐために、PHPを使用してソースを特定するためのリファラーを取得する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
ダウンロードページ down.php の php コードを Thunder または Google Chrome で直接開くと、ダウンロードしたファイルが出力されることがわかりました。抗蛭効果はまったくありません。自分のサイトに接続している人だけが直接利用できるようにしたいのですが、他のサイトに接続している人や、このアドレスを直接入力した人は、copy.htm のページにジャンプします。
PHP の事前定義されたサーバー変数 $_SERVER["HTTP_REFERER"] によってソースを特定できます。
$_SESSION['HTTP_REFERER'] は、現在のリンクの前の接続のソース アドレス、つまり、現在のページにリンクされている前のページの URL アドレスを取得できます。
これは一般に、閲覧者がリンクをクリックしてこのページに移動した場所、いわゆるオリジンを特定するために使用されますが、オリジンを特定することでホットリンクを防止するためにも使用されます。
例:
<?php $url_array = parse_url($_SESSION['HTTP_REFERER']); //如果页面的域名不是服务器域名,就连接到登陆窗口 if($_SERVER['HTTP_HOST'] != $url_array["host"]) { header("location: login.php"); exit; } ?>
最近、ユーザーが json ページに不正にアクセスするのを防ぐ必要があるプロジェクトがあります。基本的な解決策は、呼び出し以外のアクセスを制限するソースを決定することです:
$_SERVER[‘HTTP_REFERER’]:来路链接,可能带尾巴(如: 可以通过php内置函数parse_url()来获取到当前网址(www.httple.net),即: $refererUrl = parse_url($_SERVER[‘HTTP_REFERER’]); $host = $refererUrl[‘host’]; $host的值即为来路的网址(www.httple.net)。 获取到了来路的网址之后,我们就可以通过这个网址来限制访问该页面的权限了。代码如下: if(!isset($_SERVER[‘HTTP_REFERER’]) || $referurl[‘host’] !=”www.httple.net”) { header(“location: /”); //如果没有来路,或者来路不是本站,跳转到首页。 exit; }
このコード行を JSON データ ページの先頭に置くと、この問題を簡単に解決できます。
この処理方法の欠点: ページの通常のデータは、偽造されたソースを通じて取得される可能性があります。
関連コード
ソース URL を取得する方法は、主にサーバー変数の HTTP_REFERER 関数を使用します。コードを貼り付けます:
function get_referer(){ $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL $str = str_replace("http://","",$url); //去掉http:// $strdomain = explode("/",$str); // 以“/”分开成数组 $domain = $strdomain[0]; //取第一个“/”以前的字符 return $domain; } //对于百度、谷歌搜索引擎来路判断 function get_seo(){ $s = 0; if(strstr(get_referer(),'baidu.com')){ $s = 1; } else if(strstr(get_referer(),'google.com.hk')){ $s = 1; } return $se; }
php website ソース URL を取得するこのメソッドは主にサーバー変数の HTTP_REFERER 関数を使用します。コードは次のように貼り付けられます:
function get_referer(){ $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL $str = str_replace(“http://”,””,$url); //去掉http:// $strdomain = explode(“/”,$str); // 以“/”分开成数组 $domain = $strdomain[0]; //取第一个“/”以前的字符 return $domain; } //对于百度、谷歌搜索引擎来路判断 function get_seo(){ $s = 0; if(strstr(get_referer(),’baidu.com’)){ $s = 1; } else if(strstr(get_referer(),’google.com.hk’)){ $s = 1; } return $se; }
フォームを処理するときは、Discuz がすでにフォームハッシュに基づいてユーザーによる静的送信の可能性を判断します。
ここでは、ページの起源を特定するために別の方法を使用します。もちろん、この方法は HTTP_REFERER
## の起源を偽造するためにも使用できます。 # 2 番目の部分は、PHP のheader('location: がページにジャンプした後、次のページの HTTP_REFERER を取得できないという問題を解決することです。ここでは、ページへのリンクを追加してから js を使用することしかできません。リンクのクリックをシミュレートして、次のページが確実に HTTP_REFERER を受信するようにします。キーワード: document.getElementById('gourl').click();
推奨学習:以上がPHPを使用してリファラーを取得し、不正アクセスを防ぐソースを特定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









