exciteなどの無料メールページでは、
ログインすると、一見、全ての情報がhttpのアドレスとして
記載されているように見えるのですが、
一度接続を切って、ブラウザーの"履歴"からそのhttpアドレスを
もう一度見ようとすると 「ページの有効期限切れです」
という警告が表示されます。


どのような仕組でセキュリティーを保っているのでしょうか?

質問がわかりにくくてすいません。

「ページの有効期限切れ」に関するざっくばらんな回答でも構いません。


ポイントは必ず発行しますので よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

他にもいろいろやり方があると思いますし、EXCITEもこのとおりとは限りませんが、方法の一つとしてお答えします。



まず、metaコマンドなどで、パソコン内にキャッシュ出来ない様にします。
そして、cgi引き数やクッキーにセッション情報を載せたり、どのページからジャンプしてきたかの情報を得る事により、不正なアクセスを出来ないようにしているのでしょう。

この回答への補足

早速ご回答ありがとうございます

追加質問で申し訳ありません、

metaコマンドでキャッシュをためないようにするのはどのように記述したらよいのでしょう?

あるいは、cgi引数やクッキーについても 具体的な記述方法を教えていただけると幸いです。

補足日時:2001/04/02 16:57
    • good
    • 0

ちょっと、抽象的ですみません。



見ようとするURLの最後のファイル名がcgiやaspとなっていると、
そのページはオフラインや直接では見れない場合があります。
理由は、cgiやaspのページはその都度、サーバに表示の要求を
出しているからです。
また、認証を行うページの中へ直接行こうとする上記のようになります。

あと、ページによってはどこのページから来たか(直前のページ)を
調べることも出来るので、それにより、直接入れないように
することも出来ます。
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Q[警告 : ページの有効期限切れ]

Perlで日記のスクリプトを書いています。

通常にアクセスしたページから、<form>タグの、POST方式で管理人のパスワードと管理人モードに行くよという情報を送って、まず管理人画面に入ります。
GET方式に直すと

diary.cgi?mode=admin&pass=abcd

といった感じです。
さらに管理人画面にて、新規投稿や既存の記事の削除および編集ができるようになっていまして、その記事編集をする場合は、管理人画面にてさらにPOST方式を使って編集画面へとうつります。ここでのPOST送信は分けあってJavascriptを使っています。
編集画面に移動するボタンは、削除用のフォームの中にあり、しかしフォームを入れ子構造にすることはできなく、かといってリンク等で(記事noが69の記事の場合)

<a href="diary.cgi?no=69&mode=edit&pass=abcd">この記事を編集</a>

という風にGet送信すると、履歴にパスワードなどがのったURLが残ってしまうから、Javascriptを使わざるを得なかったわけです。

また、編集し終わると、もとの管理人の画面に戻ります。

そこで困ったことに、編集した後などにブラウザの「戻る」や、「進む」繰り返し押したりすると、
************************************
警告 : ページの有効期限切れ
要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。
*************************************

という風に表示されてしまいます。
これは致命的です。
しかし何がいけないのかさっぱり見当がつきません。

ただし、編集画面へ行くときにリンク等でGET方式で送信するとこの症状が出ません。

なにがいけないのでしょうか。
限られた文字数と、サンプルソースは長すぎて載せられないため、状況をうまく説明できていませんが、不明な点があればご指摘下さい。

Perlで日記のスクリプトを書いています。

通常にアクセスしたページから、<form>タグの、POST方式で管理人のパスワードと管理人モードに行くよという情報を送って、まず管理人画面に入ります。
GET方式に直すと

diary.cgi?mode=admin&pass=abcd

といった感じです。
さらに管理人画面にて、新規投稿や既存の記事の削除および編集ができるようになっていまして、その記事編集をする場合は、管理人画面にてさらにPOST方式を使って編集画面へとうつります。ここでのPOST送信は分けあってJavascriptを使って...続きを読む

Aベストアンサー

multipart/form-dataの場合、Locationヘッダを利用することで回避したことがあります。
例えば、hoge.cgiへmultipart/form-dataでPOSTした場合・・・

[一般的なhoge.cgiの処理]
1) POSTデータを aaa.jpg で保存し
2) imgタグとかでaaa.jpgを表示して終了 ← これが問題のページ

[Locationでの回避策]
1) POSTデータを aaa.jpg で保存後
2) いきなりLocationヘッダで http://~/hoge.cgi?img=aaa.jpg へ飛ばし
3) imgタグとかでaaa.jpgを表示して終了 ← 単に飛ばされてきたページなので問題発生せず

つまりは、POSTデータで生成されたページは「ページの有効期限切れ」になるので表示しないというやりかたです。(こんな処理は面倒なので、なにか別の策があるなら知りたい)

単にパスワードが丸見えになるのがイヤでPOSTしているだけでしたら、
パスワードを暗号化(ハッシュ化)するなり、Cookieを利用するなりして丸見え対策したほうが近道かも。

multipart/form-dataの場合、Locationヘッダを利用することで回避したことがあります。
例えば、hoge.cgiへmultipart/form-dataでPOSTした場合・・・

[一般的なhoge.cgiの処理]
1) POSTデータを aaa.jpg で保存し
2) imgタグとかでaaa.jpgを表示して終了 ← これが問題のページ

[Locationでの回避策]
1) POSTデータを aaa.jpg で保存後
2) いきなりLocationヘッダで http://~/hoge.cgi?img=aaa.jpg へ飛ばし
3) imgタグとかでaaa.jpgを表示して終了 ← 単に飛ばされてきたページなので問題発生せず

...続きを読む

Q「警告:ページの有効期限切れ」となるのを回避するには?

ブラウザからファイルのアップロードを行うCGIを作ったのですが、
「警告:ページの有効期限切れ」と表示されます。
どうも<input type=file>でファイルを送信している場合に有効期限切れになるようです。

宜しくお願い致します。

Aベストアンサー

おおさっぱ過ぎて回答が出来ません。
どのような場合に「有効期限切れ」と出るのかがわかりません。
CGIの該当部分のソースを開示できませんか?

QPerlをつかって有効期限を設けたい

現在会員サイトをつくっているのですが、その会員に会員期限をつけようと思っています。
入会から1ヶ月、3ヶ月、6ヶ月、無期限
のようにいくつかの期限を選択できるようにするつもりなのですが、どのようにすれば一番スムーズな書き方なのかわかりません。
私の考え方としては

会員データーベースに入会日(更新日)例えば20050316として、1ヶ月更新の場合有効期限を20050416としてデーターベースに入れていく。
今日の日付が20050416になった瞬間に期限がきれるというようにする。こんな感じです。ただこの場合、年度がかわったりうるう年の計算などカレンダー的な計算は必要かとおもいますが・・・

こんな感じ以外にもっといい方法があればご教授ください。

Aベストアンサー

あまりに、返信がないようなので、素人ですが。

$time = time();
$time には、1110888760等の日付を秒数化した値が
はいる。
タイムを取得して、1ヶ月なら、$timeで取得した時間
+60(秒)*60(分)*24(時間)*30(日)した値が、再度取得
した$timeより小さければ、期限切れで削除。って方法
もありますよ。
この場合は、日付計算が算術的にできるので便利です。
また、期限切れ当日じゃなくっても、それ以降のアクセス
でも、削除されるので。
一般的に閏年とかは考えないで、30日、60日、90日
と、日付で区切る方が簡単です。
月ごとでもPerlでもできなくはないですが、面倒だと
思うので。

Perlって閏年は、localtimeの中にはないみたいです
ねー。PHPなら、閏年の判定があるみたいなんですが。
さらにSQLだと、日付計算も楽なんですが。

とりあえず、localtimeから閏年計算をしているページを
載せておきます。

参考URL:http://www.7key.jp/hp/perl/ref_getyoubi.html

あまりに、返信がないようなので、素人ですが。

$time = time();
$time には、1110888760等の日付を秒数化した値が
はいる。
タイムを取得して、1ヶ月なら、$timeで取得した時間
+60(秒)*60(分)*24(時間)*30(日)した値が、再度取得
した$timeより小さければ、期限切れで削除。って方法
もありますよ。
この場合は、日付計算が算術的にできるので便利です。
また、期限切れ当日じゃなくっても、それ以降のアクセス
でも、削除されるので。
一般的に閏年とかは考えないで、30日、60日、90日
...続きを読む

Qフレームページで HTTP_REFERER

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

ちなみに私の使っているサーバーは、HPとcgiが別サーバーとなっています。
解析するページからは『<img~~』で呼び出しています。

Aベストアンサー

HTTP_REFERERというのは、見ている人のブラウザが返してくる直前のURLを返す変数です。

フレームを使用しているページでも使えるはずですが、、、。
どのように使われたいのでしょう???

┌------index.html-----------┐
│┌---------┬----------┐│
││・left.html・│・right.html・││
│└---------┴----------┘│
└-------------------------┘とファイル名を仮定すると・・・

単に取り付けるだけなら
●フレームページの内側のページに付ける●
この場合でも充分アクセス解析が出来るはずです。
仮に、ダイレクトにleft.htmlのページとかを表示されなくても、
index.htmlの内部で表示しただけのページでも、カウントされ解析されるはずです。
left.htmlとかright.htmlとか上部のページなどフレームページ内に表示される好きなページのHTMLファイルに<img~タグを貼り付ければ出来るはず。

もし違う使い方をされたいのならば補足してくださいませ。

HTTP_REFERERというのは、見ている人のブラウザが返してくる直前のURLを返す変数です。

フレームを使用しているページでも使えるはずですが、、、。
どのように使われたいのでしょう???

┌------index.html-----------┐
│┌---------┬----------┐│
││・left.html・│・right.html・││
│└---------┴----------┘│
└-------------------------┘とファイル名を仮定すると・・・

単に取り付けるだけなら
●フレームページの内側のページに付ける●
この場合でも充分アクセス解析が出来るはずです。
仮に...続きを読む

QHTTPDの AN HTTPサービス開始不可 なぜ?

困ってますのでどなたかおしえてください。
自宅サーバーをWindows Meにて立ち上げる最中なのですが、AN HTTP Server Home Pageにてhttpd Ver 1.42nを取得。httpdを“オプション一般"で開くと本来あるはずの“サービス”(“ログ”のすぐ隣)がないのでAN HTTPサービスを開始できなくて困っています。もう一台のXPでは問題ないのに・・Meはほかにも設定がいるのでしょうか?それとも何か私が見逃していることがあるのでしょうか?よろしくお願いします。

Aベストアンサー

自分のIPアドレスを調べて、
htp://IPアドレス/
で確認。

>HTTPサーバーとして動作してなくも、そのままアドレスを入力したら表示されるため
これは、
http://127.0.0.1/
にアクセスすれば確認できるかと。
(hはあえて全角にしてあります)


このカテゴリの人気Q&Aランキング

おすすめ情報