カミジン@ファンタの平穏な日常 Blog

パソコン・カメラ・アニメがないと3日持ちません。そんな学生のダラダラ日記。

イラスト:con_cen_t

0Yahoo ジオシティーズにおけるフレームを使ったリファラー問題

カテゴリー:HTML/CSS,Java Script,WEB,サーバ

昨日知恵袋にて質問している方がいたのでメモしておきます

その質問は「あるページが見れる人と見れない人で分かれる」ということでした。サーバはYahooのジオシティーズを使っている様子です。サイトは主にフレームで構成されていました。 見れない人はどのデバイスからも見れない状態で、見れる人はどのデバイスからも見れるという不思議な現象がおきている様子でした。

その「見れない人」の再現性を確認するまでにかなりの時間がかかりましたが。。。。。

 

原因は至って簡単でした。

プロパイダ?と思った方もいるかも知れませんが、「アクセス経路」でした。

HTTPの通信にはヘッダというデータがつきます。これには「どのファイル」「Cookie」「?以降の文字」など、そして「どこからアクセスしたのか」というデータも含まれます。

多くのレンタルサーバー(無料のものなどが多い)では、迷惑な直リンクを防ぐために様々な対策をしています。そしてその直リンクを防ぐ方法が「どこからアクセスしたのか」というリファラーを確認するというものがほとんどです。

YahooではJavaScriptを使った直リンク対策もしていたようです。

あるHTMLにはリファラーがない(アクセス元がない)アクセスに関しては404をご丁寧にも返してくれる仕様だそうです。(このあるHTMLの判定基準は分かりませんでしたが、この問題が起きているページの拡張子は.htmでした)

もともと指摘されていましたが、フレームを使用した場合、HTMLのリクエストへリファラーが送信されないというブラウザの仕様がジオシティーズと喧嘩してしまったみたいです。

 

この例の場合Googleの検索から目次ページそして本文のフレームページへとリンク 何故かこれがリファラーが送信されない対象になってしまってたようです。

 

確かFC2などはリファラーの対策がサーバ側だったのでほぼこのような問題は起きないと思います。

 

対策としては

よく「ようこそ」画面を出している方もいますが、あれが一番効果的なのです。ワンクッション置くとリファラーがどの状況でもうまいこと作動してくれます。

その画面にリンクさせる→フレームを用いた目次→フレームを用いたページ

となる方は一度google検索からページを確認してはどうでしょうか?

 

 

ながながとありがとうございます。

質問あればご自由に

では

 

リファラー … Referer

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>