• ベストアンサー

特定のURLからのアクセスがあったら表示されない。

特定のURLからのアクセスがあったら、そのページが表示されないJavaScriptがわかりません。 referrer を取得して・・・ということだけはわかっていますが、なにせ初心なものでそれ以上わかりません。 ・リファラを取得する ・指定したURLと合致すれば、そのページを開かない ・指定したURL以外の場合は、そのページを開く よろしくご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

少々気になったので … >Javascript とは、どこで動くプログラミング言語でしょうか? >クライアント側(ブラウザ)であって、サーバ側ではございませんね HTTPサーバーがjavascriptやvbscriptなどを解釈してくれるのであればサーバー側でも実行されますよ Perlだってスクリプトだし MicrosoftのASPのサーバーサイドコードをjavascriptで書けないこともないです … 実用的かどうかは別として 本題について サーバの環境変数が取得できる環境なら var sReferer = Request.ServeVariables("HTTP_REFERER"); といった具合で取得できます Ano.#1氏の回答にもあるように これはリンク元ページの情報です 特定のユーザーを認識したいのであれば REMOTE_ADDRなどを参照するようにするのではないかと思います これでも万全ではありませんが … Poxyサーバー経由などで変わってしまうから お邪魔しました m(__)m

ame-sanc
質問者

お礼

今回の場合は「特定のユーザー」ではなく「リンク元」で考えています。 万全でないのもわかっていますが、少しでも対処しないといけないので検討しています。 ご回答ありがとうございました。

その他の回答 (1)

  • Redpython
  • ベストアンサー率56% (9/16)
回答No.1

こんにちは。 Javascript とは、どこで動くプログラミング言語でしょうか? クライアント側(ブラウザ)であって、サーバ側ではございませんね。 ではサーバには、一切サーバ側で実行されるプログラミング言語で記述されているファイルが無いとします(ソースに Javascript によるロジックが書かれててもよい)。この時、ある Web クライアントから Web サーバに対してあるページを取得する要求が発行されたとき、Web サーバはどの様に振る舞うと思いますか? 当然、要求されたページを無条件で提供するわけです。なぜなら、接続元(IP やホスト名)の情報によりページ内容を変えるか要求を拒否するか、などといったプログラムは、あくまでサーバ側で実行されるロジックになるからです。 Javascript の referrer は、リンク元の URI であって、接続元の情報ではございませんよ。 接続元の情報や接続元のセッション管理を利用したいのであれば、Java や PHP などをお勉強しましょう。 参考 URL に、referrer の説明と Javascript で利用できる情報に関するページを上げておきます。Good Luck.

参考URL:
http://www.scollabo.com/banban/jsindex/sample/sample_221.html,http://www.res-system.com/item/401
ame-sanc
質問者

お礼

>Javascript の referrer は、リンク元の URI はい、接続元ではなくリンク元でいいのです。ご回答ならびにご提供ありがとうございました。

関連するQ&A

  • 複数の特定のURLからのみアクセスを許可

    複数の特定のURLからのみアクセスを許可し、それ以外の場合は、他のページへ飛ばすJavascriptを具体的に教えてくれませんか? 単数の場合は以下のようにすれば良いらいしいのですが、複数の場合灰は分かりません <script> check = "~a.html"; url = "~b.html"; ref = top.document.referrer; if (ref.indexOf(check) < 0) document.location = url; </script>

  • 複数のURLからアクセス制限したい場合

    ある特定のURLからのアクセスを、どこかのページに飛ばすには、 <Script Language="JavaScript"> <!-- reff=document.referrer; if(reff.indexOf('相手のURL')!=-1){ location.replace('飛ばす先のURL') } //--> </Script> ですが、相手のURLのところを「複数」指定したい場合には、 どのように書き加えれば良いのでしょうか? 試行錯誤したものの、上手くいかず困っています。 ご意見頂けましたら幸いです。

  • 特定のURLからの訪問者を入室禁止にしたい

    色々調べてみたのですがよく解らなくて質問させて頂きます。 要は、特定のサイトでリンクされて、そのリンクから来る閲覧者を、本来のページとは違うURLへとばしたいのです。(これでお解りいただけるかな?) 指定URL以外からのアクセスを拒否するJavaScriptとして <script> /* 正規のリンク元URL又はURLの一部(アカウントだけでも可)を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 正規のリンク元からのアクセスではなかった場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer; // リンク元のURLを取得 if (ref.indexOf(check) < 0) // refにcheckで指定した文字列が含まれているかチェック document.location = url; </script> と言ったScriptは見つけられたのですが、私が望んでいるのは、 /* 入室許可したくないリンク元URL又はURLの一部を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 入室許可したくないリンク元URLの場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer; // リンク元のURLを取得 ???????????????? document.location = url; </script> と言ったScriptで、?????の部分をどう記述して良いのかが解りません。 よろしくお願いいたします。

  • URLの一部を見てアクセス制限

    ある掲示板の改造で特定のURL以外からのアクセスを弾くものを作りたいのですが うまくいきません。 if($ENV{HTTP_REFERER} ne 'http://www.***.ne.jp/***.html(正規のリンク元)'){ if($ENV{HTTP_REFERER} ne 'http://www.***.ne.jp/***.cgi(掲示板のURL)'){ &error('不正アクセスです'); exit; } } で、始めはうまくいったのですが、掲示板で次のページに行こうとすると URLがhttp://www.***.ne.jp/***.cgi?page=2のように引数が付いてしまい、 不正アクセス扱いされてしまいます。 そこで、引数を覗いたhttp://www.***.ne.jp/***.cgiが含まれるもの全てを アクセス可能にしたいのですが、HTTP_REFERERとどのように一致させるのか わからないのです。 どのように記述すれば良いのでしょうか?

    • ベストアンサー
    • Perl
  • リファラーの取得方法

    いつもお世話になっております。 今回も大変困ってしまし、質問をさせていただきます。 JavaScriptを使用してリファラを取得したいと考えており、 ネットや本を調べ、以下のように記述し、「Test.html」という名前で保存しました。 <script type="text/javascript"> //クッキーへ書き込み function SetCookie() { //リファラの取得 urlstring = document.referrer; //表示 window.alert(urlstring);           //クッキーへ書き込み document.cookie = "URL=" + escape(urlstring) + "; " + "expires=Fri,31-Dec-2030 23:59:59; "; } //呼び出し SetCookie(); </script> 「Test.html」と同じドメイン(サーバ)にあるWebページを表示した後、「Test.html」を表示するとリファラを取得でき、alertで表示できました。 しかし、「Test.html」異なるドメイン(このWebページがおいてないサーバ)のページを表示した後に「Test.html」のWebページにアクセスしても、リファラが取得できず、alertで表示できませんでした。 サーバが違っても、リファラは取得できるようなのですが、 どうしてこんな事態になったのか、どうにもわかりません。 どこか違っているのでしょうか? どうか教えてください。

  • C++で特定のURLにアクセスする方法を教えてください。

    C++で特定のURLにアクセスする方法を教えてください。 VisualStudio2008(C++)で開発しています。 特定のURLにアクセスして、ウェブページの情報を取得したいのですが、方法がわからずに困っています。 具体的には、twitter検索を行うAPIを実装したいです。 よろしくお願いします。

  • 指定URL以外からのアクセスを拒否するJavaScriptとして

    指定URL以外からのアクセスを拒否するJavaScriptとして <script> /* 正規のリンク元URL又はURLの一部(アカウントだけでも可)を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 正規のリンク元からのアクセスではなかった場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer;// リンク元のURLを取得 if (ref.indexOf(check) < 0)// refにcheckで指定した文字列が含まれているかチェック document.location = url; </script> とあり、試しているのですが、Google chrome4.1ではきちんと動作(指定のアドレスから移動してきちんと表示される、お気に入りから開くと転送される)するのに、Internet Explore8/Firefox3.5では動作しません(指定のアドレスから移動しても転送されてしまう)。 理由がわからないのでどなたか教えて頂けないでしょうか。 よろしくお願いいたします。

  • URLを取得してDBに格納したいのですが、、

    環境:XAMPP ver2.5.8 やりたいこと: 特定ページにJavaScriptタグを貼って、そのページがアクセルされたときに そのページURLを取得して、mySQLのDBに取得したURLを指定フィールドに 記録したいです。 同一URLであれば、上書きを考えているのですが、そのようなことは可能でしょうか? よろしければ、JavaScriptでURLを取得して、DBに渡すやり方を教えていただけないでしょうか? よろしくお願いします。

  • 特定の画像を非表示にする方法

    CSSかJavascriptを使って、自動的にページに組み込まれてしまう画像を非表示にしたいです。 ソースに特定の画像を非表示にする内容を書き込むと思うのですが・・(非表示にする画像のURLを指定?) よろしくお願いいたします。

  • 特定のURLを表示できないように

    特定のURLを表示しようとした際にただ表示できなくするならフィルタリングやコンテンツアドバイザを使えばいいのですが、それでは「規制している」ということがページを開く時にわかってしまいます。 webサイトが潰れた時やメンテナンス中に表示されるページがありますよね ページを表示できません。 検索中のページは現在、利用できません。Web サイトに技術的な問題が発生しているか、ブラウザの設定を調整する必要があります。 という感じのやつです。 指定したURLだけをこのように表示させることのできるソフトやツールまたはそれに類似したものをどなたかご存知ないでしょうか お知恵を拝借の程よろしくおねがいします