javascriptでログイン画面のURLを取得できない理由と解決方法

このQ&Aのポイント
  • javascriptで作られたIDとpasswordでログイン後の画面で、LocationURLでURLを取得できない理由とは?どうやって解決する?
  • VB初心者がjavascriptで作られたログイン画面のURLを取得する方法はあるのか?activeXやプロパティを使ってURLを取得する方法を解説。
  • WebページのURLをLocationURLで取得できない場合、javascriptの仕様によるものかもしれない。このような場合、VBやactiveXのプロパティやメソッドを使用することでURLを取得する方法がある。
回答を見る
  • ベストアンサー

javascriptで作成されたIDとpasswordでログイン後の画面:LocationURLでURLを取得できません。

VBはまったくの初心者なのですが、あるプログラムツールでIEを操作するプログラムを作っています(この言語ではactiveXと連携できる機能があります。)。 一般的なWebページのURLはLocationURLプロパティを問い合わせることで、取得できるところまではいったのですが、IDとパスワードを入力してログインするあるページだとこのやり方で取得できません(https://aaa.bbb.ccc.jp/と最上部のアドレスが表示されるのみ。)。ただし、マウスで右クリックしてプロパティを選択するとちゃんとしたURLが分かりますので(https://aaa.bbb.ccc.jp/head.ssn?server_id=abc&id=AAAABBBBCCCCDDDDEEEE11122223333のようになります。)、どうも意図的にLocationURLを用いて取得できないようにしてあるようです。この画面がjavascriptで作られているようなのですが、実際このように隠すことができるのでしょうか。 もし、この推測が正しいとして、VB、activeXのプロパティ、メソッドを使用してページのURLを取得する方法は無いでしょうか。 このページのソースも見れます。しかし、どれがセキュリティ的に開示しないほうがいいのか分からないのでとりあえず載せていません。

  • daipot
  • お礼率74% (185/247)

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 情報不足で現状がさっぱりわかりません。情報を出し惜しみしていては回答 はもらい難いですよ。 > javascriptで作られているようなのですが、実際このように隠すことが > できるのでしょうか。 > https://aaa.bbb.ccc.jp/?と最上部のアドレスが表示されるのみ 単純にフレームページなのだと思います。この場合ブラウザにはフレームを 切っている...HTML タグで言えば、FRAMESET が書かれたページの URL しか 表示されません。 現在どのような方法で LocationURL を取っているのか知りませんが、IE オブジェクトを使っていると仮定し、VB で書けばこんな感じでフレーム毎 の URL や HTMLソースなんかは取得できます。 同じくフレームページの MSDN をサンプルにしてます。このページは 3つ の Document で構成されてます。 ...エラー処理は皆無なのできちんと作ってません。(;´・ω・`)σ 間違いがあったり、意図の読み違いだった場合はスルーして下さい。では。 Sub Sample()      Dim IE  As Object   Dim n  As Long   Dim i  As Long   Dim Url As String      Const READYSTATE_COMPLETE = 4      Url = "http://msdn.microsoft.com/library/ja/"      Set IE = CreateObject("InternetExplorer.Application")   With IE     .Visible = True     .Navigate Url     While .Busy Or .ReadyState <> READYSTATE_COMPLETE     Wend     n = IE.Document.frames.Length     Debug.Print "【 Frames Count 】 " & CStr(n)     For i = 0 To n - 1       With IE.Document.frames(i).Document         Debug.Print "--------------------------------"         Debug.Print "【 Document URL 】 " & .Url         Debug.Print "--------------------------------"         Debug.Print "【 Document Source 】"         Debug.Print .documentElement.outerHTML       End With     Next   End With End Sub

daipot
質問者

お礼

ご回答ありがとうございます。ご指摘のとおり、フレームページでした。documentElement.outerHTMLでアドレスの残りの部分が得られました。

関連するQ&A

  • リダイレクト元のURLの取得方法について

    現在、以下2つのphp5プログラム(+ PEAR::AUTH)で、なんちゃってフォーム認証するCGIを作成しています。 環境 Windows XP、Web SV IIS 5.1 (1) aaa.php  : PEAR:AUTHを使った、ログイン画面(フォーム認証CGI)。  : 機能 : MySQLに格納されたID/PWで認証する。認証OKだったら、bbb.phpが出力するDBレコードデータ参照ページへのリンク集を出力する。    リンク1)http://domain.jp/bbb.php?id=1001    リンク2)http://domain.jp/bbb.php?id=1002    リンクn)http://domain.jp/bbb.php?id=nnnn    ・・・といった感じで、DBに登録されたレコードを表示するCGIへのリンクをずらずら出します。 (2) bbb.php  : DBデータを整形し、多少見やすい形に加工したHTMLページを出力する。    この時、aaa.phpが認証OKの証?として出力したCookieが、    1.あったらHTMLページ出力し、     例1)http://domain.jp/bbb.php?id=1001 = 一意のキーid=1001の値で出力出来る、MySQL上のデータをHTML化したもの     例2)http://domain.jp/bbb.php?id=1002 = 一意のキーid=1002の値で出力出来る、MySQL上のデータをHTML化したもの     例n)http://domain.jp/bbb.php?id=nnnn = 一意のキーid=nnnnの値で出力出来る、MySQL上のデータをHTML化したもの    2.無かったら、     (a) http header 401を出力     (b) aaa.php(フォームログイン画面)にリダイレクトする。  一応、ここ迄はいいのですが、例えば、利用者が、上記例2のURLをブラウザ「お気に入り」で保存しておき、直接そのページをみたい、と言った時、リンク指定先のbbb.phpは、  ・ そのユーザがログインしていない場合(Cookieが無い場合)、aaa.phpのログインフォームへリダイレクトする  ・ aaa.phpは認証後、リンク集ページを出力する、  といった動作になってしまいます(てゆうかそうゆう作りなんで当たり前ですが・・・)。  そこで、aaa.phpの機能で、  ・ 「どのURLから、リンク(リダイレクト)されてきたかを判定するロジック」を入れ、もし、「bbb.php?id=xxxx」だったら、   ・ 認証OK後、直接、そのbbb.phpが出力するHTMLのURL(http://domain.jp/bbb.php?id=xxxx)に、再度リダイレクトする処理を入れれば良い?、   のかなーと短絡的に考えました。  で、問題となるのが、aaa.phpが表示された時、どこからリダイレクトされてきたか(リダイレクト元のURL)を知る方法です。  そこで、PHPの、$_SERVER[HTTP_REFERER]を入れてみた所、  ・ bbb.phpにリダイレクトされる前のURLが、$_SERVER[HTTP_REFERER]に入っている(多分、別のHTMLのbbb.php?id=~へのリンク集?)  ・ $_SERVER[HTTP_REFERER]の中が空(URL直接指定?)  という現象で詰まってしまいました。  ここから抜け出す為、何か良いアイディア(別の方法、関数等)があればお知恵拝借したいと考えています(書いてある事を理解して頂ける文章か今イチ不安ですが・・・)。  何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • checkboxクリックされていないidを取得

    <form id="chkform"> <input type="checkbox" name="check" value="aaa" id="aaa">aaa <input type="checkbox" name="check" value="bbb" id="bbb">bbb <input type="checkbox" name="check" value="ccc" id="ccc">ccc                   ・                   ・                    ・ <input type="checkbox" name="check" value="zzz" id="zzz">zzz </form> チェックボックスの複数の項目の内、チェックされていない全てのIDを取得する方法を教えてください。 よろしくお願いいたします。

  • javascriptでurlを取得

    javascript、ごくごく初心者です。 Facebookにshareさせたい自ページURLをjavascriptで取得したいと思いますが、 なかなかうまくいきません。 よろしくお願いいたします。 <meta property="og:url" content="ここにアドレス取得" />

  • 共通したクラス名を持つ複数のタグのIDを取得したい

    共通したクラス名を持つ複数のタグのIDを取得したい <div class="classA" id="id1">aaa</div> <div class="classB" id="id2">bbb</div> <div class="classA" id="id3">ccc</div> となっているHTMLファイルからjqueryで要素を取得するプログラムを作成しています この時、class="classA"となっているID(id1とid3)とテキスト(aaaとccc)をjqueryで取得する方法を考えています jqueryで、 var elements = $(".classA"); でclass名がclassAの要素の数を取得したり、 var id = $(".classA").attr("id"); でidを指定すれば取得することもできました しかし、これはjqueryがあらかじ

  • Javascriptでページ取得したい

    いつもお世話になっています。 スマホサイトにて、キャリアごとにhtaccessで振り分けを行っていますが、 「PCサイトへ移動」ボタンを押したら、PCページへ移動させたいのです。 追加条件として、PC版のTOPページではなく、「今見ているスマホページのPC版ページ」へ移動させたいのです。 <a href="http://aaaaa.jp/bbb/ccc.html?mode=pc">PC版サイトはこちらから</a> と一つ一つ全ページに入れていくのは大変なので http://aaaaa.jp/bbb/ccc.html この部分をJavascriptで自動取得したいです。 <a href="【jsで自動取得】?mode=pc">PC版サイトはこちらから</a> のようなイメージです。 そもそも可能でしょうか? 可能であればソースまで教えていただけると助かります。 宜しくお願い致します。

  • 全く同じURLで、複数のリンク先へ分岐

    全く同じURLで、複数のリンク先へ分岐 あるメールに含まれるリンク先をクリックすると、URLが全く同じなのに、別のページへリンクしました。 例(下記のアドレスは、質問のための架空の物で、実際のページはありません) AAAです。 http://a.b.cde.jp/f/12345 →クリックすると、AAAのページを表示(URLは、AAAのものへ切り替わる) BBBです。 http://a.b.cde.jp/f/12345 →クリックすると、BBBのページを表示(URLは、BBBのものへ切り替わる) CCCです。 http://a.b.cde.jp/f/12345 →クリックすると、CCCのページを表示(URLは、CCCのものへ切り替わる) どうして、こんな事が可能なのでしょうか? そのメールはテキストのメールなので、テキストエディタで内容を読んでみても、特に仕掛けはありませんでした。 不思議でなりません。 どんな技術を使っているのでしょうか。

  • phpでのURL取得について

    phpにて、ソース内のURLを取得するプログラムを作っています。 その中に短縮URLが混ざっており、取得しても例えば“http://tinyurl.com/?aaa”のような形になってしまいます。 この“http://tinyurl.com/?aaa”が“http://www.yahoo.co.jp/index.html”の短縮URLなら“http://www.yahoo.co.jp/index.html”の形で取得したいのですが、phpで可能でしょうか?

  • javascriptからURLパラメータ値を送る

    使用言語はJSPです。 画面上のラジオボタンの値を取得しているjavascriptが以下です。 これでボタンが押下されたとき、この関数を呼び出しラジオボタンのVALUE値をアラートとして表示することはできています。 これをURLパラメータとして、JSPサーバ側に送りたいと思いますが、 NULL値となってしまいます。 取得は、request.getParameter("aaa"); としていますがNULL値です。 JAVASCRIPTからURLパラメータを送付・サーバ側から取得する方法を教えていただけますか。 function check(){ var aaa = document.getElementsByName("ラジオボタンの名前"); for(var i=0;i<arr.length;i++){ if(aaa[i].checked) var param = aaa[i].value; aaa.action = "./bbb.jsp?param="+param; aaa.submit(); return aaa[i].value; } }

  • ◆配列

    いつもお世話になっています。 [0] => ttp://aaa.hoge.jp/1.html [1] => ttp://bbb.hoge.jp/1.html [2] => ttp://ccc.hoge.jp/1.html [3] => ttp://ddd.hoge.jp/1.html [4] => ttp://aaa.hoge.jp/2.html [5] => ttp://aaa.hoge.jp/3.html [6] => ttp://aaa.hoge.jp/4.html [7] => ttp://bbb.hoge.jp/2.html [8] => ttp://bbb.hoge.jp/3.html [9] => ttp://bbb.hoge.jp/4.html [10]=> ttp://bbb.hoge.jp/5.html 上記の配列があります。例えば同じURLの場合3件まで取得しもう一つ配列を作成したい。 上記の配列だと下のような配列にしたい。 [0] => ttp://aaa.hoge.jp/1.html [1] => ttp://bbb.hoge.jp/1.html [2] => ttp://ccc.hoge.jp/1.html [3] => ttp://ddd.hoge.jp/1.html [4] => ttp://aaa.hoge.jp/2.html [5] => ttp://aaa.hoge.jp/3.html [6] => ttp://bbb.hoge.jp/2.html [7] => ttp://bbb.hoge.jp/3.html ループで色々探っているのですが。。。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • ヤフーの別IDでチャットにログイン

    いつもお世話になっております。 質問です。 現在、ヤフーのIDを2つ持っているのですが、 メインじゃないほうのIDでチャットにログイン していた場合、ヤフーチャットのトップページで、 「現在チャット中のお友達」のところには、メイン のIDは表示されるのでしょうか? 例えば、メインIDが aaa だとします。 このaaaではメッセの友達が数人いるので、メッセで オンラインにしたりどこかの部屋のチャットにログイン していると、「現在チャット中のお友達」のところに 私の aaa というIDが表示されると思うので、その 友達にもチャット中かどうか等、すぐわかると思います。 そして、例えばもう1つのIDを bbb にした場合、 そのbbbでログインしているときは、aaa のときの 友達にはわかるのでしょうか。 ヤフーのチャットのメインページで、「現在チャット 中のお友達」のところには、aaaはもちろん、bbb の名 前も表示されないでほしいのですが、どうなりますか? どなたか教えてください<(_ _)>