• 締切済み

httpsへの移行について、II

前質問でhttpsへの移行について回答をいただきまして(ありがとうございました)、 ほぼ理解できたのですが 新たに不明な事が出てきましたので質問させていただきます。 現在、html上のボタンをクリックすると 表示しているhtmlの上に幅狭で、window.openして、データを表示している処理があります。 ボタンクリック時、window.openを行っていますが、その際のJavaScript処理は (1)現在日時を取得 (2)windowのサイズ計算(幅は情報が表示できる範囲の固定、高さはscreen.heightの半分) (3)window.openのパラメータセット   key="aaa.exe(cgiアプリのexe名)?KEY=(日時)"; para="width=380,height=(2)で求めた値+他option; (4)windowをopenして位置調整 newwin = window.open(key,'infomation',para); newwin.moveTo(15,20); newwin.focus(); ・・・のような処理になっています。 これだと、methodは「GET」ですよね。 これを「POST」にする(SSL対応)処理は、どうしたらいいのでしょう??? 例えば、、、ダミーhtml(ダミーじゃなく、見出し部分などだけのhtml?)を作成しておき、 window.open時に、そのダミーhtmlを「https://・・・ダミーhtml」でopenし、 ダミーhtml内に、methodはpost、アクションはcgiのaaa.exe・・・のようにしておき、 onloadで処理させるのかな、、、 ・・・とも思ったのですが、その場合、パラメータとして渡す日付はどうやって渡せばいいの???   と、はまってしまいました。 よろしくお願いします。

  • jg1wjz
  • お礼率91% (148/162)
  • CGI
  • 回答数4
  • ありがとう数4

みんなの回答

回答No.4

前回の質問の回答で > formのactionにGETを使用していないか? > 通信内容はSSLで暗号化されますが、送信先のURLは暗号化されません。 > 暗号化したい場合は、POSTなどへ変更した方が良いです。 という回答をした人がいましたが、これはウソです。 SSLで暗号化すれば、GETでアクセスした時のURLもパラメータ含めて 暗号化されます。 (参考) http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=26986&forum=14 したがって、SSLを使うからといってPOSTに変更する必要はありません。 今のスクリプトで大丈夫です。 他の部分もGETをPOSTに変更する必要はありません。

jg1wjz
質問者

お礼

Lchan0211b様、 有難うございます。 ネットで検索していく中でも、掲載日付等がなかったりするサイトもあるので、古い情報を見て「え---っ、これじゃダメなの?!」って、結構焦ったりすることがあります。^^; 現時点の情報としましては、サーバ側の対応もできていない(私はこの辺りは理解できていません)のでSSLアクセラレータの導入も検討・・・のようです。 ---> そしたら、何にもしなくていい!? 全部POSTにする要請もありますが、現在運用中でも有るので 今のままで許容されるのであれば、そのまんまにしたいと思います。 一応、事前対策として GET、window.open(URL=cgiで出力) ---> POST、window.open(URL=cgiで出力)の方法を完璧にしておきたいです。

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

パラメータを隠してCGIに情報を送りページを開きたいのなら 基本的にCookieを使うしかありません

jg1wjz
質問者

お礼

b0a0a様 ありがとうございます。 最後の手段としてCookieを使いたいと思います。

  • t_ohta
  • ベストアンサー率38% (5041/13169)
回答No.2

SSL対応でPOSTにするとは、どういう事でしょう。 GETメソッドでもHTTPSで通信させればSSLに対応しますよ。

jg1wjz
質問者

お礼

t_ohta様 ありがとうございます。 GETでも大丈夫なんですね。 でも実は全部POSTにするよう要請もあるんです。 過去にGET--->POSTに手直しした経緯があります。 その際に影響の無い(改ざんされない)「参照」のみの部分はGETのままになっていまして、今回それも直さないと。。。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

リンクで開く場合はQUERY_STRINGかPATH_INFO以外データを渡す方法はありません。POSTはformの機能ですから <form method="post" action="./aaa.cgi" onsubmit="return false;"> <input type="text" name="data" /> <input type="submit" name="form" value="送信" onclick="open(this.form)"/> </form> <script type="text/javascript"> function open(f) { f.target = "newWindow"; var w = window.open("about:blank", f.target, 'width=200, height=200'); w.focus(); f.submit(); } とか・・ ダミーhtml(ダミーじゃなく、見出し部分などだけのhtml?) じゃダメですよ。 CGIを使うなら、この元ページ自体もCGIから出力させるほうが楽だと思います。   </script>

jg1wjz
質問者

お礼

ORUKA1951様 ありがとうございます。 ちょっと難しそうですが、理解しながら上記コードを組み入れて試してみたいと思います。

関連するQ&A

  • window,open

    ★=window.open("▲","☆","■") で★と☆がウィンドウの名前と書いてあったのですが 区別がわかりません これは開いたウィンドウの名前なのでしょうか? それともこのスクリプトがあるウィンドウをさすのでしょうか? あとウィンドウの名前のつけ方も教えていただけたら うれしいです 具体的には newWin=window.open("control,html","newWIn","width =240.height=120"); と書いてありました

  • MS-DOSバッチファイルにおけるパラメータ入力

    初歩的な質問で失礼します。 abc.exe という実行ファイルがパラメータとして 「para1,para2,para3」と3つのパラメータを 持っていたします。 そこで、  abc.exe para1 para2 para3 とコマンド投入するのではなく、バッチファイルで実行したいのです。 さらに、実行する際には、 **************************** > abc.exe を実行します > para1 を入力して下さい  (→aaaを入力) > para2 を入力して下さい  (→bbbを入力) > para3 を入力して下さい  (→cccを入力) **************************** といった具合に、各パラメータのキーボード入力を個々に待ち合わせるようにしたいの ですが、このようなことは可能でしょうか? 又、可能な場合バッチファイルはどのように作成すればよろしいでしょうか?

  • window.open を 遷移先のページで close する

    現在のページ index.htm (仮) でページをオープンした 場合、 var win1 = window.open('', 'newWin', ''); post submit 等で次のページに移ってから、前ページ で開けた newWin を閉じるにはどうしたらいいのでしょうか。 win1.close(); とか newWin.close(); とかやっても ステータスバーに、三角のびっくりマークが出て うまく動かないようなのですが。

  • windows.open()で一番小さいウィンドウを表示

    javascriptのwindow.openを使って、ものすごく小さい(見えないくらいの)ウィンドウを表示したいと考えています。 windows.open("xxxx","","width=1,height=1")と表示させたのですが、私が希望しているよりも大きかったので質問しました。これが限界なのでしょうか? ※次の処理へ移す為のダミーページとして 利用したいと考えており、できるだけユーザが気づかせたくないため

  • ENTERキーを無効にしたいのですが教えて下さい

    ENTERキーを無効にしたいのですが、SUBMITボタンでjavascriptを動かしています。 SUBMITを押した瞬間に、別ウィンドウにデータを渡しているのですが、 どの部分にどのようなスクリプトを追加すれば良いでしょうか? 良かったら教えて下さい。 ■親ウィンドウのHTML <html> <head> <title>親</title> <script type="text/javascript"> <!-- window.name = (new Date()).getTime();    function make_newwin(f) {   f.target = window.name + "_ko";   var w = window.open("about:blank", f.target, "スタイル設定");   w.focus(); } //--> </script> </head> <body> <form name="test" action="/cgi-bin/test-check.cgi" method="post" onSubmit="make_newwin(this)"> <input type="submit"> </form> </body> </html>

  • CGIに渡しているパラメータを表示させたくない

    現在 xxx.cgi?para1=aaa&para2=bbb といったようにパラメータを渡して動いているCGIがあります。 このCGIの変更は無理な状況で(仕様変更にお金がかかるので...) 渡しているパラメータを隠したいと思っています。 とりあえず考えたのがもうひとつ別のCGIを作って そこでJava Scriptで本来のURLに飛ばす処理でしたが、 JavaScriptを無効にされたり、リンク先を保存されたりしたらわかってしまいます。 何かいいアイデアはないでしょうか?

    • ベストアンサー
    • CGI
  • HTTPエラー 502.2 Bad Gateway

    win2003,IIS5のころからWEBシステムを納品しています。 今回、windows2008,IIS7.0の環境上でCGIアプリを動かそうとしたら、 HTTP エラー 502.2 - Bad Gateway 指定されたCGIアプリケーションは、正しく動作できませんでした。HTTpヘッダーの完全なセットが返されませんでした。返されたヘッダーは""です。 というエラーになって動きません。 (cgiアプリはc++言語で作成しています) システムの仕組みは、静的なdefault.htmlでログインID+passwordを入力し、 JavaScriptで  入力チェックを行い、OKだったら、  white_pageのhtmlをサイズ指定でwindows.openし、  action, target, method(post)指定で  aaa.exeを動作させています。 aaa.exeはwhite_page.htmlに、 ロゴなど、画面の外枠html(iframe有り)を表示しています。 外枠htmlのbodyのonLoadで、iframe内に 表示する、bbb.exeを post で submit しています。 aaa.exeは、正しく動き、ロゴなどは正しく表示できますが、 その後のbbb.exeが動くときに上記のエラーになってしまいます。 aaa.exeのログは正常に記録されますが、bbb.exeのログはファイルすらありません。 上記エラーコードで、いろいろ検索してみましたが IIS7のbug っぽいようで、、、 アプリケーションではどうしようもないように受け取れるのですが 何か解決方法をご存知の方はいらっしゃらないでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • ENTERキーを無効にしたいのですが教えて下さい。その2

    以前、以下の方法を教えていただいてうまくいったのですが、 ボタンを画像ボタンにし、javascriptで、押したら沈むボタンを 作成したところ、ENTERキーが無効にならなくなりました。 ENTERキーを押されて送信されないことが先決なので、 どなたかご伝授いただければと思います。 以前のスクリプト <html> <head> <title>親</title> <script type="text/javascript"> <!-- window.name = (new Date()).getTime(); function make_newwin(f) {   f.target = window.name + "_ko";   var w = window.open("about:blank", f.target, "スタイル設定");   w.focus();   f.submit(); } //--> </script> </head> <body> <form action="/cgi-bin/test-check.cgi" method="post" onSubmit="return false"> <input type="button" value="送信" onClick="make_newwin(this.form)"> </form> </body> </html> こちらで、 <input type="button" value="送信" onClick="make_newwin(this.form)"> これを以下のようにtypeを変えてしまったところ、効かなくなりました。 <input type="image" SRC="new.gif" ALT="新規登録ボタン" NAME="botan_new11" WIDTH="78" HEIGHT="26" BORDER="0" ID="botan_new" border=0 onMouseOver="MM_swapImage('botan_new11','','botan_new_sw.gif',1)" onMouseOut="MM_swapImgRestore()" onClick="make_newwin(this.form)"> これは、無理な話なのでしょうか?教えて下さい。

  • postで送られてきたパラメータが処理できない(perlCGI)

    postで送られてきたパラメータが処理できない(perlCGI) postメソッドで送信されてきたパラメータの値によって条件分岐しようとしているのですが どうも受け取ったパラメータがハッシュ値のはずなのにハッシュ値として処理できなくて困っています。perl自体初心者なのでなにか勘違いしている可能性が高いですが、意味不明で完全に行き詰っているのでよろしくお願いします。 (送信パラメータは{"key":"1"}) #!/usr/bin/perl read(STDIN, $data, $ENV{'CONTENT_LENGTH'}); print "Content-type: text/html\n"; print "\n"; print "$data{'key'}\n"; 確認のため上のコードのようにしてみたところなにも表示されません。 しかし最後の行でprint "$data\n"; という風に帰るとkey=1といった表示が出力されます。 $dataの中身が単純な文字列になっているかと思えばそうでもなく、かといって $data{"key"}, $data{'key'}で$dataの"key"に対応する要素を取り出そうとしてもなぜかできません。 postメソッドはただの値ではなくハッシュ値ではないと送れないみたいで多いに困っています。そもそもなんで連想配列を受け取っているはずなのに処理できないのでしょうか? 心当たりがある方、よろしくお願いします。

    • 締切済み
    • CGI
  • サブウィンドウに変数を渡す方法・・・

    ブウィンドウを開く時に親ウィンドウからフォームの値を変数として渡し スプリクトを実行したいのですがやり方が解りません。 どなたか教えて頂けませんでしょうか? 下記のソースだとうまくいきません newWin = window.open("xxx.php3","SubWindow","left=400,top=100,width=300,height=400");