• 締切済み

直接アクセスを防止するためのリダイレクト

あるサイトのトップページに、画像をクリックすると onClick=open...で小画面が開く仕組みをしてあります。 この操作で開く小画面に直接アクセスされた場合に自動的にトップページにリダイレクトされる仕組みを作りたいのですが、どうすれば良いでしょうか? リファラーで、どこのページから跳んできたかを取得して、リンク元がindex.htmlではない場合にはindex.htmlに転送されるというJavascriptは見つけたのですが、これだと、onClick=open...で小画面を開くという形ではこのページにアクセスできなくなってしまうようです。 まあ、スクリプトでウインドウを開くのですからリンクもと情報がついてこないのは当然ですが。 この小画面は、開くウインドウサイズを指定する必要があったり、アドレスバーを表示させたくないなどの理由から、ターゲットを_blankにして 普通のリンクにすればいいという方法ではこの問題はクリアできません。 何とかならないでしょうか?

みんなの回答

回答No.1

子windowでは、親windowのURLを参照できます。 子windowで、<script>alert(window.opener.document.URL);</script>してみて下さい。 これをrefererの代わりに使うというのはどうでしょうか。 他にも方法はあると思います。例えば、cookieを使う方法です。 親windowで画像をクリックした瞬間に、javascriptで時刻情報を含むcookieをセットします。子windowでそのcookieの値をチェックして、10秒以内に発行されたものであればOKとするとか。

MORGEN
質問者

お礼

ご回答ありがとうございました。 window.opener.document.URLというものを初めて知って、「これはいいアイデアだ」と思って色々いじってみたのですが、元ウインドウが存在する場合はおっしゃる通りアラートが表示されるもののダイレクトアクセスだとアラート自体が出ないですし、そうなると余計にこのwindow.opener.document.URLをどう活用すれば良いかが解らず、一ヶ月も経った今も前に進めない状態です。クッキーを扱うjavascriptというと余計に全く未知の世界なので今のところ歯が立たない状態で…。 せっかくのお知恵を活用できなくてすみません。 どうもありがとうございました。

関連するQ&A