web-dev-qa-db-ja.com

ログオフ後、ユーザーはブラウザの戻るボタンを押すことでページを見ることができます

ログインしていないと、サイト内の書籍を表示できないという要件があります。また、ユーザーはコンテンツを表示できません。

問題は、ユーザーがログインして、ブックとその子ページを表示し、ログアウトしたときです。ブラウザの[戻る]ボタンを押すと、ログインする前に開いたページを表示できます。しかし、彼は変更を加えることができません。

これにより、ユーザーが公共のコンピューターからサイトにアクセスし、ログオフし、ブラウザーウィンドウを閉じずに立ち去ると、問題が発生する可能性があります。

この問題を解決するために使用できるモジュールまたは設定変更はありますか?

4
AjitS

これはブラウザがページをキャッシュした結果であり、実際にそれについてできることは多くありません。

一部のブラウザーは、次のようなキャッシュ制御ヘッダーの設定に応答する場合があります。

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

これにより、ローカルキャッシュに関係なく、ブラウザに強制的にページを再ロードさせる可能性があります。

明らかにいくつかの Safariでこれを制御するために使用できるオプション がありますが、他のブラウザーでは何も見つかりませんでした。同じことがChrome(Webkitベース))でも機能すると思いますが、他の主要なブラウザについてはコメントできません。

7
Clive

ユーザーが自分のブラウザのキャッシュを見ることを止めることはできません。そして、あなたも試してはいけません。ブラウザのナビゲーションパラダイムを破ることはお勧めできません。

とは言っても、戻るボタンが無効になっているように見せるために使用できるトリックがあります。ユーザーはこれらのトリックを回避することができますが、一部の人々を時々だますかもしれません。

これらのトリックを説明する1つのページを次に示します。 http://viralpatel.net/blogs/disable-back-button-browser-javascript/

Googleで「戻るボタンを無効にする」を検索すると、さらに多くのことが得られます。

Jsをサイトに追加するには、APIで drupal_add_js を検索します。

1
Free Radical

このコードをカスタムモジュールで使用できます。

<?php 
/**
 * Implements hook_init().
 */
function MY_MODULE_init() {
  drupal_add_http_header('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate, post-check=0, pre-check=0');
}
?>
0
mouhammed

手遅れですが、私は完璧な解決策を思いつきました。モジュールを書きました Back Button Refresh

構成

モジュールを通常のプロセスとしてインストールし、[ホーム]"[管理]"[構造]"[ブロック]で[戻る]ボタンの更新ブロックの表示設定を構成します

  • 戻るボタンの更新ブロックを検索し、デフォルトのテーマの下部領域に設定します。管理テーマが異なる場合は、使用しているすべてのテーマのブロック設定を行い、ユーザーが制限したデータを使用して、このブロックを機密ページで使用できるようにする必要があります。
  • すべてのページに表示するブロックの可視性を設定します。

どんな提案でも大歓迎です。

0
Yogesh Kushwaha