ブラウザのキャシュにあるフォーム入力データを完全に消去するには?
[上に]
[前に]
[次に]
いいづか
[E-Mail]
[HomePage]
1999/04/16(金) 02:46:27
現在僕はCGIとして起動されるPOP3クライアントを公開しています。
メールサーバへの認証を取るためにユーザからパスワードを入力
してもらうのですが、ほとんどのブラウザではキャッシュに
入っているページの中にPOP3接続時のパスワードが残ったままに
なってしまい危険な状態となってしまいます。
ブラウザに「キャッシュ内・履歴内にフォーム入力データを
残さないようにする」事を指示するための方法はなにかあるので
しょうか。
eXor
1999/04/16(金) 08:29:56
キャッシュ自体が残らなければOKと思います。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
などのタグを利用すればいいのではないでしょうか?
Nobu3
1999/04/16(金) 13:39:48
試せる環境が無いので、できるのかはわかりませんが、
たとえばJavaScriptで制御するのはどうでしょう?
フォームの送信時にデータをクリアしてみるとか。
<script type="text/javascript">
<!--
function formErase(){
namae=document.form1.namae.value;
pass=document.form1.pass.value;
document.form1.reset();
location='なんとか.cgi?namae='+namae+'&pass='+pass; //ここは怪しい・・・
}
//-->
</script>
<form name=form1 action="なんとか.cgi">
<table>
<tr><td>Your Name<td><input name=namae type=text value="">
<tr><td>Password<td><input name=pass type=password value="">
</table>
<input type=submit value="送信" onclick="formErase();return false;">
<input type=reset value="やり直し">
</form>
メタタグの指定よりはブラウザが限定されるかもしれませんが、
"no-cache"が効かないのもあるかもしれないですし・・・
あと、キャッシュから消えるべき日付が指定できるタグもありましたね。ここのHTMLリファレンスの <META> にあったような気がします。
幾重にも対策するのが良いでしょう。たぶん。
羽崎
1999/04/17(土) 00:41:27
MIMEヘッダで
ドキュメントの有効期限をあらわす部分を過去の日付にすれば
キャッシュの有効期限切れになります。具体的な記述としてたとえば
Expires: Thu, 08 May 1997 12:00:00 GMT\n
を加えればブラウザは「キャッシュの有効期限切れ」を示します。
いいづか
1999/04/17(土) 01:38:30
いろいろとご指摘ありがとうございました。
ちょっと書き方が悪かったかも知れません。
no-cacheとExpires: はすでに試しておりましたが、
ここで行いたい処理は「ブラウザに表示されている
FORMの入力値・処理結果をブラウザの画面から消去する」
のではなく「POSTメソッドで要求した入力値をブラウザが
保持しているフォーム呼び出し用キャッシュから消去し、
有効期限切れの状態からリロードしてもCGIにパラメータが
わたらないようにする」というものです。
このようなMETA指定等は何かあるのでしょうか?
BASIC
[E-Mail]
1999/04/17(土) 01:48:46
ようするに、よく掲示板とかで書き込みしたあと
ブラウザの更新ボタンを押すと、
IE4とかで「フォームデータの再構築?」とか聞かれて
「はい」と答えると再度情報が送信されてしまうって事ですよね?
BASIC
[E-Mail]
1999/04/17(土) 01:50:04
↑「フォームデータの再投稿?」でした(^^;
ちなみに、ここでもなりますね
いいづか
1999/04/17(土) 02:03:20
> IE4とかで「フォームデータの再構築?」とか聞かれて
> 「はい」と答えると再度情報が送信されてしまうって事ですよね?
そうです。
Aurai
[E-Mail]
1999/04/17(土) 08:00:48
毎回ユニークなPATH_INFOを付けるとか……
[上に]
[前に]
[次に]