dポイントプレゼントキャンペーン実施中!

前質問で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で処理させるのかな、、、
・・・とも思ったのですが、その場合、パラメータとして渡す日付はどうやって渡せばいいの???
 
と、はまってしまいました。

よろしくお願いします。

A 回答 (4件)

前回の質問の回答で


> formのactionにGETを使用していないか?
> 通信内容はSSLで暗号化されますが、送信先のURLは暗号化されません。
> 暗号化したい場合は、POSTなどへ変更した方が良いです。
という回答をした人がいましたが、これはウソです。

SSLで暗号化すれば、GETでアクセスした時のURLもパラメータ含めて
暗号化されます。
(参考)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …

したがって、SSLを使うからといってPOSTに変更する必要はありません。
今のスクリプトで大丈夫です。
他の部分もGETをPOSTに変更する必要はありません。
    • good
    • 0
この回答へのお礼

Lchan0211b様、
有難うございます。

ネットで検索していく中でも、掲載日付等がなかったりするサイトもあるので、古い情報を見て「え---っ、これじゃダメなの?!」って、結構焦ったりすることがあります。^^;

現時点の情報としましては、サーバ側の対応もできていない(私はこの辺りは理解できていません)のでSSLアクセラレータの導入も検討・・・のようです。
---> そしたら、何にもしなくていい!?

全部POSTにする要請もありますが、現在運用中でも有るので
今のままで許容されるのであれば、そのまんまにしたいと思います。

一応、事前対策として
GET、window.open(URL=cgiで出力) ---> POST、window.open(URL=cgiで出力)の方法を完璧にしておきたいです。

お礼日時:2013/05/29 10:04

パラメータを隠してCGIに情報を送りページを開きたいのなら


基本的にCookieを使うしかありません
    • good
    • 0
この回答へのお礼

b0a0a様
ありがとうございます。

最後の手段としてCookieを使いたいと思います。

お礼日時:2013/05/29 09:45

SSL対応でPOSTにするとは、どういう事でしょう。



GETメソッドでもHTTPSで通信させればSSLに対応しますよ。
    • good
    • 0
この回答へのお礼

t_ohta様
ありがとうございます。

GETでも大丈夫なんですね。

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

お礼日時:2013/05/29 09:44

リンクで開く場合は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>
    • good
    • 0
この回答へのお礼

ORUKA1951様
ありがとうございます。

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

お礼日時:2013/05/29 09:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!