ログアウト後、ブラウザの戻るボタンを押すと、前のページは表示されず、デフォルトページ(ログインページのみ)に移動する必要があります。ログアウト後のバックアクションを防ぐ
私は、 "history.forward()"、 "onbeforeunload"、メタタグ内のキャッシュを期限切れにして、 "http://www.brookebryan.com/ back button detection "非常に多くの..私は非常に混乱しています。
誰も解決策を提案できますか?
ログアウト後、ブラウザの戻るボタンを押すと、前のページは表示されず、デフォルトページ(ログインページのみ)に移動する必要があります。ログアウト後のバックアクションを防ぐ
私は、 "history.forward()"、 "onbeforeunload"、メタタグ内のキャッシュを期限切れにして、 "http://www.brookebryan.com/ back button detection "非常に多くの..私は非常に混乱しています。
誰も解決策を提案できますか?
あなたはこれを行うことはできません。戻るボタンを無効にすることができれば、悪意のあるサイトはすべてあなたから離れないようにします。とにかくユーザーの基本機能を許可しないことは決して良い考えではありません。
すべてのことを言って、戻るボタンの使用を妨げることができます。ログアウトボタンPOSTをフォームにして、リダイレクトするのではなくPOSTに直接応答すると、フォームを再POSTするかどうかを尋ねる警告がブラウザから表示されます。
AJAXリクエストをサーバーにロードするために、もう1つのトリックがユーザーのページに戻ってくると思います。そのサブリクエストからの応答がユーザーがもはやログインしていないことを示している場合、JavaScriptはユーザーを別のページにバウンスさせる可能性があります。
これは正直言って私にとっては時間の無駄だと思われます。
ブラウザを制御するのではなく、アプリケーションの動作を制御するのが最善の方法です。お使いのコントローラで
、この置く:(あなたは、このためのコードを参照するには十分な詳細を提供しなかった)
before_filter :validate_user
とあなたのvalidate_user方法では、あなたがログインしたユーザーを持っているかどうかを判断します。ログインしているユーザーがいない場合は、ログインページにリダイレクトします。
これは非常に一般的なイディオムです。私はいつもそれを見る。いくつかのRailsアプリケーションのソースを調べることができます。 Redmineのissue trackerにはapplication_controllerがあります。これには、セッションからUserオブジェクトを見つけるfind_current_userメソッドにつながるuser_setupというbefore_filterが含まれています。または、ユーザーをいくつかの方法で認証しようとします。
これはブラウザのキャッシュを考慮していません。私は、前のページがサーバーに要求されなくても見られないようにしたいと思っていました。 – noodl
上記に加えて、 'Cache-Control:no-cache'ヘッダーを追加します。 –
あなたがしなければならないことは、ブラウザキャッシュを無効にして、ページからログアウトした後にキャッシュされたページを返さないようにすることです。これを行うには、アプリケーション・コントローラーでのキャッシュを避けるためにresponse-headerを設定します。どうやって?
in 'application_controller.rb' .....
before_filter :set_no_cache
def set_no_cache
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
この回答で述べたように:あなたは、あなたの質問に「ルビーオンレール」のタグを追加する場合は、答えを見つけるのより良いチャンスがあるhttps://stackoverflow.com/a/748646
。 –
にruby-on-railsタグが追加されました。 – Philipp
あなたのアプリケーションで 'sessions'を使用している場合は、すべての安全なページの' session'を確認してください。 – FosterZ