2012-03-22 103 views
1

ログアウト後にブラウザの戻るボタンを「無効にする」方法はありますか?asp.net:ログアウト後にブラウザの「戻る」ボタンを「無効にする」方法はありますか?

私はいくつかの投稿を読んだことがあります。私はを無効にすることができます。 (例えばASP.NET authentication login and logout with browser back button

これは働いているが、私はセキュリティ上の理由から、戻るボタンを無効にするだけをログアウトした後(=利用可能なセッションはもうありません場合)します。私はキャッシュを無効にした場合に記録されている間

は、ユーザーがブラウザの[戻る]ボタンを使用することはできません。

私はカスタム認証、asp.net

のない標準を使用している安全なあり(=いいえjavascript)可能性がありますか?

答えて

2

ブラウザで「戻る」ボタンを直接無効にすることはできません。

ユーザーが戻るのを防ぐための唯一の方法は、ページをキャッシュに設定するか、JavaScriptを使用するかのいずれかに依存する唯一の方法です。これらのどちらもあなたにとってうまくいかないという事実に基づいて、これを管理する解決策はありません。私は何年にもわたって多くの記事を見てきましたが、これを何度か再検索しました。すべての提案はクライアント側のスクリプトまたはキャッシュを使用しています。

あなたのケースでは、キャッシュ無効化メソッドを使用し、UIが「戻る」ボタンにどのように反応し、デザインをスムーズにするための変更があるかを確認することをおすすめします。これには、セッション変数をチェックすること、またはユーザーがまだ認証されているかどうかを確認することが含まれますが、要件を満たしていれば、あなたは不運だと思います。

要するに、2つの悪のうち小さい方を選ぶ必要があります。あなたがユーザーを防ぐことができますログアウトページの履歴を削除するにはJavaScriptを使用して、おそらくより良いセキュリティ

  • - 人々がすべてではJavaScriptを使用しなくても、「戻る」ボタンを使用できないことを保証するページのキャッシュを使用して

    • ログアウトした後に戻ることはできませんが、noscriptがオンになっているか、悪意のある人がコントロールを無効にする可能性があります。

    保護しようとしている人物とその人物を正確には指定していませんが、私が正しく推測していて、ログアウト後にPCを離れるユーザーは閉鎖せずにいるブラウザのウィンドウは、本当にJavascriptは本当に心配ですか?

    これを実行すると、この情報をどのように悪意のある方法で使用できるかについては考えていません。悪意のある人は、すでに「悪い人のように思っています」と考えており、ブラウザのウィンドウを閉じるのに十分な知識があります。

    どちらのオプションも、httpヘッダー、javascriptなどを傍受/変更するマルウェア経由でバイパスすることができ、どちらも本当に100%有効ではありません。私が見る唯一の違いは、javascriptオプションは、(Fiddlerやマルウェアのようなものを使用して)ワイヤを渡ってhtmlを変更することと、単にJavascriptを無効にすることの両方によって壊れる可能性があることです。したがって、セキュリティのために、ページキャッシュのオプションは、わずかにになります。それが大幅にワイヤー間でデータを操作することの難しさを増加させるので代わりにプレーンなHTTPのHTTPSを使用して

    は、それがずっと、より効果的なもの、ヘッダ方式との組み合わせで、より多くの保護を提供し、それが無効になっていないのですJavaScriptを無効にするだけです。

    いずれにせよ、私はあなたの選択肢の重さとどちらかを選ぶ必要があると思います。悲しいことですが、私たちはユーザーを自分自身から守るために多くのことを行うことができます。

  • 0

    放棄時にセッ​​ションを廃棄するための放棄方法&データまたはダッシュボードページでSession!= nullをチェックすると、[戻る]ボタンを無効にする必要はありません。

    +0

    動作しません。 – David

    2

    ブラウザで実行中のものはすべて傍受されたり無効になったりする可能性があります。

    私のマシン上のブラウザにWebページを読み込ませると、すべてのページのソースを表示して保存できます。クライアント側に送信されたページは保存できます。私は、サーバーとの間のすべての通信をキャプチャしてキャプチャします。 HTMLをレンダリングしたり、JavaScriptを自分のマシン上で実行したりしたい場合、私はそれを見て、私が望むなら永遠にそれを保持します。

    アプリケーションを実行する被制御マシンとのリモート接続を介してアプリケーションへのアクセスのみを許可することでこれを制御できますが、コンシューマアプリケーションの場合はおそらく禁止されています。

    あなたはしかし、悪意のあるユーザーは何の問題このJavaScriptを無効にするか、彼はそれを受信するだけで、コンテンツを保存していません。この

    function logout(){ 
        window.open(loggedOutPageURL) 
        self.close() 
    } 
    

    ようなもので、ほとんどのユーザーを阻止できますが、これはあなたができる最善のかもしれません行う。

    <script language="text/javascript"> 
    
    window.history.forward(1); 
    
    </script> 
    
    +1

    +1は、ユーザーがページを保存/印刷できるようにするための素晴らしい点です。私は確かに分かっていませんが、私は彼が公共のPCを使用し、誰かの印刷情報よりもブラウザウィンドウを閉じるのに失敗したというユーザを心配しています。情報を印刷/保存/改ざんする悪意のあるユーザーは、最初にログインする必要があります。ログアウトしてから誰もが保護されたページに戻らないようにしているように思えます。彼が保護しようとしている人のタイプの例:ブラウザからログアウトせずにPCから離れている人など – David

    +0

    あなたは正しい@DavidStratton しかし、このセキュリティ上の問題の解決策はないようです?私はちょうど私の問題とクレジットカードの銀行ページを見た。ユーザーはログアウトされていますが、次のユーザー(パブリックPC上)はナビゲートして情報:\を読むことができます。 これについての解決策がない場合、Slothsberrysは素晴らしいサウンドを回避します。 –

    +1

    フェアポイント。セキュリティ上の問題については最悪の場合を想定していますが、質問の読解は合理的です。この場合、クライアントサイドのコードに依存しないという制限は奇妙に見えます。 –

    0

    は、ログアウトボタン下のスクリプトを書きます。ページは依然としてクライアント側のブラウザ履歴にキャッシュされているため、ページキャッシュが設定されていない場合でもそのページに戻ることができます。
    関連する問題