- PR -

ログオフ後、「戻る」で前のページを表示しないようにしたい

投稿者投稿内容
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-01-29 20:38
引用:

よって,画面開始時にセキュリティ制御を組み込んで,途中の画面を直接呼ばれたとき(今回の戻るボタンのように)は認証画面に飛ぶようにする等の処置が必要です。


いや、Wingard さんは単にキャッシュを見られるのが困ると仰っているんじゃないでしょうか。

引用:

しかし、ログオフをした後、ブラウザの「戻る」ボタンを押すと、
ログオフ直前のデータグリッドなどがそのまま表示されており、
セキュリティ的にあまりよろしくありません。


ところで、ユーザーがさっきまで見ていたキャッシュが表示されたら、何故セキュリティ的によろしくないのでしょうか?私は別に構わないと思うのですが。
「キャッシュに大事なものが残っているから困る」というのはユーザーの勝手では?
_________________
囚人のジレンマな日々
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-01-29 23:14
引用:

Wingardさんの書き込み (2007-01-29 17:58) より:

キャッシュを残さないようにする方法は試してみたのですが、
どうもうまくいかなかったので、別の方法でと思いました。

もし、ログオフのタイミングで関連するキャッシュを全て削除する方法がありましたら、
ご教授いただけないでしょうか。


このあたりから微妙に双方(Wingardさんと回答者)の認識がずれてきているように思う
のですが、どうでしょうか。

Wingardさんが他人に自分のやっていることを説明するにも、逆に回答者が答えたことを
理解するのにも、ASP(というよりWebアプリケーション)がどういう仕組みで動くかを知っ
ているに越したことはないでしょう(むしろぜひ知っておいてほしい)。

未記入さんの「適当なASPの本を一冊通して読むことをお勧めします。」はそれを示して
いたのだと思います(さすがに省略しすぎてわかりにくいですが)。
で、未記入さんはなぜそれを突然言い出したかと言えば、Wingardさんの質問が「Web
アプリケーションの基礎を知っている人間ならば絶対に言い出さないであろう話」だからだ
と思うのです。
いや、それは知ってるよ、ということもあるかもしれません。でもそれは表現しなければ伝
わらないんじゃないかなと。事実、私も「あーこれは基礎から勉強したほうがいいな」と感
じましたし。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-01-30 07:11
引用:

Wingardさんの書き込み (2007-01-29 17:58) より:
ご回答ありがとうございます。

キャッシュを残さないようにする方法は試してみたのですが、
どうもうまくいかなかったので、別の方法でと思いました。

もし、ログオフのタイミングで関連するキャッシュを全て削除する方法がありましたら、
ご教授いただけないでしょうか。

どんなことをして、どういう結果を期待して、結果はどんなだったのか。それが出せない人に頼られても迷惑なだけ。
ログオフは、クッキーを削除とかいいながら、セッション破棄だし..


[ メッセージ編集済み 編集者: Jitta 編集日時 2007-01-30 07:20 ]
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2007-01-30 09:18
ご回答ありがとうございます。

正直なところ、ASPはよく理解できていません。
データベースに出し入れすること以外は、
C#とHTMLだけでコードを書いてるのとほとんど変わらないと思います。

ただ、納期が近いのに顧客から突然
「ログイン・ログアウトできるようにしてほしい」
と言われたので、形だけでもできればと思い質問させていただきました。

>ログオフは、クッキーを削除とかいいながら、セッション破棄だし

というのは、クッキーを削除しようとしたけどダメだったので、
結局クッキーは削除せず、とりあえずSignOutだけさせておいたという感じです。
現状でも、ログアウト後は一切の操作はできなくなりますが、
前回の検索結果などがそのままキャッシュで残ってるので、
単純にそれを表示させたくないのです。

そのためには「戻る」を無効にするのでも、
いっそブラウザを強制的に閉じてしまうのでも有りだと思いますが、
結局キャッシュが残っていると見る人が見ればわかるんじゃないかと思い、
キャッシュを消す方法がないかを質問しました。


そのためにはキャッシュを消すのじゃなく、
そもそもキャッシュを残さない方法を取るのがよさそうですね。
ひとまずそこらへんを重点的に調べてみます。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-01-30 11:22
引用:

そのためには「戻る」を無効にするのでも、
いっそブラウザを強制的に閉じてしまうのでも有りだと思いますが、
結局キャッシュが残っていると見る人が見ればわかるんじゃないかと思い、
キャッシュを消す方法がないかを質問しました。


そのためにはキャッシュを消すのじゃなく、
そもそもキャッシュを残さない方法を取るのがよさそうですね。
ひとまずそこらへんを重点的に調べてみます。


どう頑張っても完全には無理です。
キャッシュを見られるのが困るんですよね?
ログアウトしているのにキャッシュからリクエストされるではなく。

「セキュリティ上よろしくないので、印刷しないでください。ログアウトしたら印刷した紙を焼き払いたい」と言っているのと同じような事だと私は思いますけども。
_________________
囚人のジレンマな日々
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2007-01-30 12:24
引用:

Wingardさんの書き込み (2007-01-30 09:18) より:
ただ、納期が近いのに顧客から突然
「ログイン・ログアウトできるようにしてほしい」
と言われたので、形だけでもできればと思い質問させていただきました。


「無理」と断った方がいいのでは?
(自分の能力を超えた依頼について、保証できるんですかい?)

ぽぴ王子さんが書かれたように、「Web
アプリケーションの基礎を知っている人間ならば絶対に言い出さないであろう話」だから、一つHTTPの基礎あたりから学習しなおすのがいいかと思います。
(個人的には、telnetなんかでリクエストをしてみて「これだけの事からあれだけのアプリが作れるの?」と驚いてみる辺りからやるといいんじゃないかと。)
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-01-30 13:02
るぱんです。

全ての画面の画面IDを配列でセッションで持ちまわって、
更新前の状態で、2こ前の画面の画面IDが
当該処理の結果画面と同じ結果になるようなリクエストを受け取ったら、
ログアウトしてセッションを強引に破棄するとかどう?

って、論点ずれてるかな?

[追記]
ちなみに、画面処理の関数の前でたぶん、イニシャライズ処理をするところが
あると思われるので、
そこに共通部品で差し込んだら終わらないかな?

POSTBACKでセッションが壊れてたら、ログアウトして、ログインしなおす様にするって
感じですが。

他の方が書かれていますが、
わからない、出来ないことは、出来ませんと言えることが良いSEの条件だと思います。
[/追記]

[ メッセージ編集済み 編集者: るぱん 編集日時 2007-01-30 13:07 ]
Wingard
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 168
お住まい・勤務地: 頭の中はファンタージェン
投稿日時: 2007-01-30 13:17
ご回答ありがとうございます。
とりあえず、「難しい」ってことを伝えます。
ひとまず、Web.Configを次のように書き加えることで、
「戻る」を押しても「警告 : ページの有効期限切れ」と表示されるようになりましたので、
これで納得してもらうようにします。


コード:
    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="MyCache" enabled="true" duration="0" varyByParam="*" location="Server" />
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>




スキルアップ/キャリアアップ(JOB@IT)