[PHP-users 3810] Re: リンク元の判定

SAWADA Hodaka php-users@php.gr.jp
Sat, 24 Nov 2001 14:48:17 +0900


At Sat, 24 Nov 2001 09:08:54 +0900,
ponta wrote:

> phpなどで使われる環境変数のHTTP_REFERERですが、
> どのくらいの確実性があるのでしょうか。

まず、存在する場合、
偽造可能なので、他の情報と照合して合否を判定しないと使えない。

他の情報とはこんな感じです。
・時間 (こっちの時間は偽造不可能)
・接続元 IP アドレス/ホストネーム (偽造困難)
・user agent (偽造は容易)

また、「存在しない場合は全部 error」にしてしまうと、
HTTP_REFERER を返さないクライアントとか、proxy がある場合、
正当な user にもかかわらず、接続拒否になってしまう。

というわけで、個人的には、不特定多数向きでは信用性「零」
と思っております。

信用するかどうかは別として、参考資料としては、面白いですけどね。

脱線すると、
キャンペーン終了後に page を閉じて link が消えているのに、
アクセスがあるので、調べてみると google のキャッシュからだったとか。
# これは元の expire をきっちり指定すれば、避けられるのかな?

> また、REFERERを使わずリンク元によってページを表示するということは
> できるでしょうか。
略
> 今回、リンク元のページ(=特定のページ)には私はタッチできず、
> リンク元のページでは「仕様を変えることは出来ない」ということなので、
> リンクされた後のページに仕組みをつくるしかありません。
>
> HTTP_REFERERの確実性と、
> その代替手段についてご存知の方がいらっしゃいましたら教えて下さい。

リンク元 page の協力を得ることができないならば、「無理」でしょう。

こっちに飛んできてから、さらに login 機構を作るしかないと思います。
-- 
         =^^= HODA =^^=          http://www.tail.gr.jp/~hoda/
澤田保隆@しっぽアルゴリズム情報研究所  mailto:hoda@tail.gr.jp