- ベストアンサー
PHPで特定サイトからのみアクセスを有効にする方法
- Aサイト、Bサイトと2つのサイトがあります。Bサイトへアクセスする際にはAサイトを経由してのアクセスのみ有効にさせたいです。
- 現在わかっている経由の確認方法としてIPチェック、リファラチェックとなりますが、IPチェックの場合、AサイトのIPを取得するにはAサイトからの遷移かを知る必要があり、リファラを取得が必要になると思っております。その場合、IPチェックはリファラチェックでカバーしているのではと思っております。リファラチェックの場合、リファラ偽装されたらそれまでだとは思っておりますが、IPチェックを考えるとリファラチェックの方が良いのかと思っております。
- 上記以外で、Aサイトからのアクセスであることを確実に知る方法はありますでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Aサイトからリンクする際に、リンクURLにトークンを付けてBサイトでトークンの有効性チェックをするというのはどうでしょう。 タイムスタンプをベースに独自の情報を暗号化してトークンを作成し、Aサイトではリンクが表示される度に新しいトークンをURLに付加。 Bサイトではトークンの内容を検証し、トークンの発行時刻から一定時間内のアクセスなら有効と見なすと確実なのではないでしょうか。
その他の回答 (1)
- 春原 なの(@ymda)
- ベストアンサー率37% (668/1777)
こんにちわ #1さんのおっしゃられる以外に、以下の方法も考えられます。 Aサイト側に、Bサイトで表示できる画像 (1x1pxのダミー)を 用意します。 実際はこれはスクリプトで、Aサイト側がアクセスした証拠として Bサイトで時限で保持するものです。 http://a-site.domain/ この中に <img src="http://b-site.domain/check.php" height="1" width="1" /> が入っているものとします。 #もしくは、普通にバナーを表示されても構いません これが表示されていることが確認できればBサイト側で アクセスを有効にできるのですが 外から見ると非常にシンプルに実装できる(ばれない)ものの 欠点は、画像表示していないブラウザーですと制限にかかる、 または、モバイルのキャリアネットワーク(スマホも)の IPアドレス配下ですと、IPアドレスが頻繁にかわるために 認証しきれない所です。 ちなみに・・ check.php と表記しましたが、あえて、check.jpeg という拡張子のPHPにして .htaccess で、jpeg という拡張子はPHPだよ、ということを 追加で教え込んでおけば アクセス者側から見たら、このような制御をしていることが ばれにくくなります。 #phpにも、キャッシュ制御をしっかり設ける必要もありますが
お礼
ご回答ありがとうございます。 こちらも一度どういった動きになるか、ためしてみます。 スマホアクセスも想定していたため、実際に利用するかわかりませんが、 教えて頂きありがとうございました。
お礼
トークンを使うことは考えていませんでした、 やること自体も難しくはないので組み込んでみようかと思います。 ありがとうございます。