AspプログラムからのHTTP_REFERER取得の問題

このQ&Aのポイント
  • httpsからはじまるAspプログラムからCGIを経由するとHTTP_REFERERの値が取得できない
  • CGIはhttp://cgiroom.nu/の「KEEP OUT」というプログラムを使用しており、作者の掲示板などで解決策を探しているが見つかっていない
  • サポート掲示板にはHTTP_REFERERの値に関する情報があり、セキュアかASPの仕様と関連している可能性がある
回答を見る
  • ベストアンサー

HTTP_REFERERの値とセキュアーについて

ジャンプしてきたURLを参照し、CGIの中に設定した値と一致した場合のみ次のページに移動できるCGIを使用しているのですが、httpsからはじまるAspプログラムからそのCGIをとおすと、上手くHTTP_REFERERの値をとってくれません。 CGIは、http://cgiroom.nu/の「KEEP OUT」というプログラムです。(参照:http://cgiroom.nu/list/level_up/keepout/index.htm) 作者の方の掲示板を調べたり、質問をしたりしているのですが、これ!という解決策がみつかりません。 サポート掲示板に「HTTP_REFERERの値」についてかかれたものがあり、セキュアーかASPの仕様と何か関係があるのでしょうか? 身近にプログラムについてくわしい方がいないため、とてもこまっています。どうか宜しくお願いいたします。

  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.1

perlのCGIで同様の経験をしたことがあります。 どのようなブラウザをお使いになっているかわかりませんが、それは、おそらくInternet Explorerの仕様です。 非HTTPSからHTTPS、またはその逆の場合HTTP_REFERERは送信されません。 詳しくはマイクロソフトのサポートページに載っています。(REFERERで検索してみてください) IE4と書いてありますが、それ以降のバージョンにも適用されている可能性があります。

Rubellite
質問者

お礼

ありがとうございます。セキュアーの場合はURLのジャンプしてくる元がHTTP_REFERERではだめなんですね。 たいへん勉強になりましたm(_ _)m ペコ ブラウザはIE5.0を対象に作成されたASPの中で使用されていますので、HTTP_REFERERを使用したCGIは上手くうごかないようですね。 どうもありがとうございましたm(_ _)m ペコ

関連するQ&A

  • フレームページで HTTP_REFERER

    よろしくお願いいたします。 初心者ながらもHPを立ち上げ、Free配布のcgiもいくつか設置したのですが、 アクセス解析のcgiで、機能等に非常に満足のいくcgiが、参照元を取得するのに 「HTTP_REFERER」を使っていました。 私のHPは、フレームを使っておりまして、「HTTP_REFERER」では参照元が取得 出来ません。 どのようにすればよろしいのでしょうか?? ちなみに私の使っているサーバーは、HPとcgiが別サーバーとなっています。 解析するページからは『<img~~』で呼び出しています。

    • ベストアンサー
    • CGI
  • JavaScriptで取得した値をASPで受け取りたい

    現在、アクセス解析の為にindex.aspというファイル内でREMOTE_ADDR、HTTP_USER_AGENT、HTTP_REFERERの値を取得し、CSVデータとして保存しています。 ですが、index.aspはアクセスされた時に一番初めに表示して欲しいページにも関わらずaspファイルである為、index.htmlファイルを作成し、その中に呼び込む形にしています。 でもそれですと、HTTP_REFERERで取得できる値はindex.aspを表示する前に必ず通るindex.htmlだけになってしまいます。(サイト内の他のページからindexに戻ってきた場合は正しい値がとれる) これだと正しい解析結果が求められないので、index.htmlの方にJavaScriptのコードを埋め込み、リ HTTP_REFERERの代わりにしようと考えました。 <frame src="index.asp?ref=***" name="xx"> とすれば値はindex.aspに渡せるのですが(これが行って良い方法なのかはわかりませんが)、受け渡す値はその都度生成されるもので、このタグの中にそのJavaScriptで出した値をどう埋め込んでやればいいのか解らず、困っています。 何か良い方法はありませんでしょうか。 index.aspはどうしてもaspファイルである必要があるのでここの仕様は変更できません。 もし無理な場合は、「無理だ。」の一言もお待ちしています。 よろしくお願いします。

  • 環境変数リファラーの値をを最後のページまで持ちたい。

    表題わかりにくくてすいません。 商品ごとの申し込みフォームを作成しています。 まず、 $ENV{'HTTP_REFERER'};でどのURLのページから来たか判別させて、 その最初に入ってきたリファラーの値をページ遷移のときに最後の ページまでもっていきたいのです。 ■1ページ目(HTML)名まえ年齢、商品番号などを記入 <A.HTML> ■2ページ目(CGI)住所 <B.CGI> sub page2{} ■3ページ目(CGI)確認画面。<C.CGI> sub page3{} ■4ページ目(CGI)サンクスページ <D.CGI> sub thanks{} 以上の4ページの構成ですが、最初の1ページ目のHTMLが商品ごとにちがっていて、どの商品のページのHTMLからきているのか判別させて、サンクスページで、URLごとに別の件名の確認メールを自分あてに送信できるようにしたいので、最初のページがどのURLなのかをリファラーで判断させたいのです。商品によって、入力項目を変えるたりもしています。(POSTで商品ごとのhiddenタグを送ればいいと思うかもしれませんが、今回は$ENV{'HTTP_REFERER'};についてのやり方でやりたいのです。) ですが、$ENV{'HTTP_REFERER'};を2ページ目のサブルーチンのなかに記述しても2ページ目ではどこからきているのか$ref = $ENV{'HTTP_REFERER'};などと記述すればわかるのですが、この最初のリファラーの値を3ページ目、4ページ目に持っていくのにはどうしたらいいのでしょうか?全部のページのサブルーチンに$ref = $ENV{'HTTP_REFERER'};を書いてしまうと、そのひとつまえのURLが認識されてしまいます。ですが、最初のリファラーの値をずっと最後のページまで持っていたいのです。 どなたか、方法がわかりましたらご教授願います。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 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
  • 環境変数HTTP_REFERERを使うには?

    ただ今、CGIで独自のアクセス解析プログラムを作成中です。 相手がアクセスしてきたら、メールに転送して情報を取得出来るようにしたんですが・・・・ リンク元を取得するのに以下のようにやってみたのですが、送られてきたメールは空メール(涙) ソース抜粋 $host = $ENV{'REMOTE_ADDR'}; $ref = $ENV{'HTTP_REFERER'}; open(MAIL,"| $sendmail $mailto"); flock(MAIL,2); print MAIL $host . $ref; flock(MAIL,8); close(MAIL); ホストアドだけを取得するとちゃんと情報が入って返って来るんですよね・・・ すみません、情報を取得できる良い方法は無いでしょうか?

  • 「Referer-Sweeper」というフリーCGIの事で

    http://kan-chan.stbbs.net/download/cgi/refswp.html 上記サイトで配布されている「Referer-Sweeper」というスクリプトなのですが、ジャンプするURLのページ内リンクの「#」以降が無視されてしまうのは技術的にどうにもならないのでしょうか? もし改良の余地があるのでしたら、その方法をご指導いただきたいです。 作者に直接聞くにも連絡場所が何処にも見当たらず、こちらに書き込みしました。 幸い、上記サイトの配布ソフトは「原則として自由に使用・複製・再配布・改良版の再配布等ができるものとします」という事なので、どなたか詳しい方がいらっしゃいましたらよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • HTTP POST送信のヘッダの書き方

    http://appsv.ocrgrid.org/cgi-bin/weocr/nhocr.cgiに対して、 ファイルを送信してレスポンスを得たいのですがうまくいきません。 ヘッダの書き方が悪いのかデータの送り方に問題があるのか 文字コードの問題かいづれかの原因だと推測して色々試してみたの ですが正解が見つけられません。 お解りになる方ご教授いただけませんでしょうか? ■詳細 画像から一行の文字を解析表示するCGIで クライアント側には、日本語プログラム言語なでしこを利用して ファイル送信しています。 下記にサンプルコードとレスポンスヘッダを載せています。 ■プログラムの説明 テンポラリーフォルダにWEB上に用意されているサンプル画像 をダウンロードして、「あれ」と言う名前の変数にその画像 ファイルの内用を代入しています。 送信ヘッダとボディーデータを対象のCGIに先ほど取得した画像 データと保存先のファイル名を埋め込みポストしています。 #ここからサンプルプログラム サンプル画像先からHTTPデータ取得をファイル名に保存 あれにファイル名を読む 「User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; msn OptimizedIE8;JAJP) Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language:ja-JP Accept-Charset:Shift_JIS,utf-8;q=0.7,*;q=0.7 Referer:http://appsv.ocrgrid.org/nhocr/index-j.html Accept-Encoding:gzip,deflate Host:appsv.ocrgrid.org Connection:keep-alive Cache-Control:no-cache Content-Type:multipart/form-data;boundary=---------------------------7d925e1a230364」と、 「-----------------------------7d925e1a230364 Content-Disposition:form-data;name="userfile";filename="{ファイル名}" Content-Type:image/png {(あれ)}」を"http://appsv.ocrgrid.org/cgi-bin/weocr/nhocr.cgi"へHTTPポスト。 それをSJIS変換でメモ記入 ●サンプル画像先~「http://appsv.ocrgrid.org/nhocr/hello.png」で戻る。 ●ファイル名~「{テンポラリフォルダ}{サンプル画像からURLファイル名抽出}」で戻る。 #サンプルここまで /*■処理結果レスポンスの内用 HTTP/1.1 200 OK Date: Thu, 24 Sep 2009 07:09:53 GMT Server: Apache/2 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/plain ; charset=utf-8 1e File transmission has failed. 0 レスポンス内用ここまで*/

  • これはcgiですか?javaですか?

    少し解らずらい内容なのですが・・すみません、教えてください。 実はアクセスログを設置し、運営しようかと思っております。 そのプログラムがフレームに対応していないとの回答(開発者)をいただき、一番初めに表示されるページにタグのリロードをつけ、そしてフレームページにジャンプさせる・・・、と考えておりました。が、エンドユーザー側がそのページにブックマークをつけると、次回は次のページからスタートしてしまい、正確なログが取れないという問題に直面しました。 図) |-index.htm(ログ集計・・・リロードにてnext.htmへジャンプ) | |-next.htm(エンド側にてブックマークにすると、次回はnxet.htmからとなる) で何かよい方法はないかと思い、相談しました。 例) |-index.htm |  |-???.cgi | |-index.htm とできれば、ブックマークをつけても、常にindex.htmとできるのですが・・・? これは、cgiですか?javaですか? あと、ソースを教えてください。

  • cgiもしくはJAVAなのでしょうか・・・?困ってます!!

    少し解らずらい内容なのですが・・すみません、教えてください。 実はアクセスログを設置し、運営しようかと思っております。 そのプログラムがフレームに対応していないとの回答(開発者)をいただき、一番初めに表示されるページにタグのリロードをつけ、そしてフレームページにジャンプさせる・・・、と考えておりました。が、エンドユーザー側がそのページにブックマークをつけると、次回は次のページからスタートしてしまい、正確なログが取れないという問題に直面しました。 図) |-index.htm(ログ集計・・・リロードにてnext.htmへジャンプ) | |-next.htm(エンド側にてブックマークにすると、次回はnxet.htmからとなる) で何かよい方法はないかと思い、相談しました。 例) |-index.htm |  |-???.cgi | |-index.htm とできれば、ブックマークをつけても、常にindex.htmとできるのですが・・・? これは、cgiですか?javaですか? あと、ソースを教えてください。

    • ベストアンサー
    • CGI
  • アクセス解析はフレームにつけるべき?

    フレームのメニューにカウンターを設置し、同時に $refer = $ENV{'HTTP_REFERER'}; で、リンク元URLを検出し、ログファイルに記録して います。 ただ、結果がメニューのURLとしてログが残ってしまい 肝心のどこから来たのかがわかりません。 これを改善するにはどうすればよろしいでしょうか? ・HPはフレームで組んであり、メニューとメインにわかれている ・index.htmにつけるとしてjavascriptなどで.cgiを動かすことはできますでしょうか? そのほかお気づきの点がありましたらご指導くださいm(__)m

    • ベストアンサー
    • CGI

専門家に質問してみよう