- ベストアンサー
直リン禁止方法
indexからのリンクではなく、お気に入りなどからの他コンテンツへのアクセス(直リンク)を禁止したいのですが可能でしょうか? そしてHTMLだけでなくCGIにも可能でしょうか? ご存知の方がいらっしゃいましたらご伝授お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> PassをつけてLoginしないと見れないようになって > いるのですが、Loginした後のページをお気に入り > に追加されると困るんです。 > Passを入力してログインした際にLogを習得してい > る為直リンされるとPassの意味がなくなるんです。 パスワードはどうやってかけられてますか? もしCGIなどでやられているのであれば、 ログイン時にCookieを発行、以降のページは 全てCGIにしておき、最初の段階で ○Cookieチェック →Cookieを持っていればページ表示 →Cookieを持っていなければログイン画面へ といった感じにするのが確実かもしれません。 Cookieは、有効期限を設定しないと、ブラウザを 閉じた段階で無効に出来ますので、それを利用する とお手軽かもしれません。
その他の回答 (4)
- MomijiPanda
- ベストアンサー率50% (13/26)
HTTP_REFERERは「自己申告性」ですので、いくらでもウソがつけてしまいますので、信頼性は低いと考えた方が妥当です。 案としては、 ○その1 indexにおいて、特定のルールでCookieを発行します。 (Cookieは改竄が簡単に出来ますのでパッと見では 分からないような工夫が必要です) index以外のページではCookieがあるかどうか、 ルールに従ったものかどうかを判断し、ページ を表示するかどうかのハンドリングをします ○その2 これはCGIなどの動作を理解されていないと ちょっと難しいかもしれませんが...。 ユーザー1人1人に固有のIDを振ります。 そのユーザーがどういうルートをたどっているのか 全てのページにおいて、CGIなどでファイルに記録 します。 これでindexから来たかどうかを確認できます。 なぜ直リンクをされたくないかの理由によっては、 もっと簡単な手段もあると思います。
定期的にファイル名を換えて、index以外では繋がらなくなる可能性がありますと表示しておくのはどうでしょ。
お礼
なるほど。更新を怠らなければすごくいいです。盲点でしたが更新に手間がかかりますね。
- selene_pl
- ベストアンサー率49% (102/207)
HTMLでは不可能です。 むしろ、CGIなどのサーバサイドプログラムを使えば、できるでしょうけど。 環境変数HTTP_REFERERに、どこからのリンクでそのページにアクセスしたかが保存されているので、 自分のサイト内のアドレスからアクセスがあったときのみ、 ページを表示する、といった流れになると思いますが。
お礼
なるほど、やっぱり可能なんですね。貴重な情報ありがとうございます。どういった形でCGIを記載すればよいのでしょうか?詳細がしりたいです。
- Ulu_lun
- ベストアンサー率26% (269/1019)
リンク先を全部フラッシュやジャヴァスクリプトで ページ呼び出しにしてしまうとか、そんな感じじゃ ないかと。
補足
お早い解答ありがとうございます。 いえ、とんだ先のページでプロパティを参照されたらアドレスからの直リンが可能になると思います。 タブブラウザなんかだったらかんたんにブックマークできると思いますし。
お礼
>なぜ直リンクをされたくないかの理由によっては、 >もっと簡単な手段もあると思います。 確かにそうですね、アドバイスありがとうございます。 PassをつけてLoginしないと見れないようになっているのですが、Loginした後のページをお気に入りに追加されると困るんです。 Passを入力してログインした際にLogを習得している為直リンされるとPassの意味がなくなるんです。