- ベストアンサー
HTTP_REFERERの信頼性について
http://tohoho.wakusei.ne.jp/lng/200003/00030128.htm ここを見る限り、信頼性は低いとのことなのですが、 普通にPCを買って普通にインターネットをしている 人はHTTP_REFERERで普通に情報を吐き出しているような気がします。 プロクシサーバーが変更して発信するか、 クライアントで何かソフト(ノートンインターネットセキュリティなど??) をいれているときなど以外は、手を加えていない情報を 吐き出すと思います。 つまり、そのいう手段をとっていない普通の人が 相手の場合は、信頼性は高い(?) と言っていいでしょうか? HTTP_REFERERから情報を取れないことって、 よくあることなんでしょうか? よくある OR あまりない どっちでしょう? どなたか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> つまり、そのいう手段をとっていない普通の人が > 相手の場合は、信頼性は高い(?) > と言っていいでしょうか? こういう場合に限って言えば、信頼性はかなり高いです。 IEは稀に関係ないURLを送ってくることがあるので要注意ですが、それもほとんど無視できる程度の量です。 ブラウザのシェアや、不正なアクセスを行う人の割合などを考えれば、「HTTP_REFERERから情報を取れない」というのはほとんどないと考えて大丈夫です。 (ブックマークやURL直接入力の場合、値が入ってこないブラウザもあります。) ただし REFERER を含め、HTTP_ で始まる環境変数は偽装可能なデータなので、完全に信頼して何かを行うことは危険です。 しかし、アクセス解析のように参考程度のデータとして扱うなら、そこまで心配する必要はありません。 用途に応じて、利用するかどうかを決められればよいと思います。
その他の回答 (2)
- shige_70
- ベストアンサー率17% (168/946)
#1の方はああ書いてらっしゃいますが、httpサーバの設定は通常全く無関係です。CGIは、クライアントが Referer: ヘッダに書き出した文字列をそのまま受け取るだけです。 さて、では現実問題としてどうかというと、、、信頼性は五分五分といった印象です。 Netscape,Mozilla,Opera.Lynxといった一般的なものが出力した場合は信頼度が高いです。 しかし、作りの悪いブラウザですと、単に直前に見ていたページのURLなどを平然と出力して寄越すものもあります。例を挙げれば、たしか、セガサターンモデムやドリームキャスト用のブラウザがそうでした。 そもそもhttpというプロトコルは基本的には単純で、たとえばtelnetクライアントを用いて直接サーバの80番ポートにつないでhttpを喋ってやれば、フェイクのReferer:ヘッダをもつリクエストなんていとも簡単に送れてしまいます。
お礼
回答ありがとうございます。 ふむふむ、改竄は容易とのことなのですね・・。 むー、参考になります。
サーバーの設定によるんです。 CGIで使うことも多いので、普通はちゃんと吐くように作られてるものですけど。 なので、CGIを組む場合には、「信頼できないものと仮定する」必要があります。
お礼
回答ありがとうございます! 参考になりました。
お礼
なるほどなるほどっ! ありがとうございました!