● 一定時間以上の閲覧を禁止する機能(強制ログアウト機能)について

サンプル

許容する時間は自由に設定していただけますが、ここではサンプルとして1分間の閲覧のみを許可したサンプルをご紹介します。(「1分」というのはあまりにも短いですが、たとえば「5分間」に指定したサンプルページを体験してもらうためには、5分間表示し続けてもらわないといけないため、極端に短い「1分間」に指定してあります。)

サンプル1:1分間以上の閲覧を禁止し、1分後に「本ページは、勝手ながら、1分以上の連続閲覧はご遠慮願っています。」というエラーメッセージを5秒間表示後、空白ページに移動します。

http://www.shtml.jp/sample/demo2/timeout_empty.html
サンプル2(推奨方法):1分間以上の閲覧を禁止し、1分後にお客様ご指定のURLに移動します。

http://www.shtml.jp/sample/demo2/timeout_redirect.html

どういう目的の場合に、こういう機能を使うの?

熱心に自分のページを見てもらうのは大いに結構ですが、もしかしたらコンテンツを盗み出そうと試行錯誤を繰り返しているためなのかもしれません。また、手書きでテキストを写したりしている結果なのかもしれません。

通常のセッション管理では、新しいURLにアクセスした際に、アクセスが有効かは判断できますが、一度表示したコンテンツに対して、表示をやめてしまうことはできませんね。

メタタグでやっても良いのでは?

確かにそうです。<META HTTP-EQUIV="Refresh" CONTENT="60; URL=http://www.shtml.jp/logout.php">とヘッダー部分に入れておけば、 60秒後には、http://www.shtml.jp/logout.phpに強制移動が起こります。しかしながら、メタタグによる方法では、ブラウザによっては、ブラウザの標準機能などにより自動的にMeta Refreshで移動させないようにユーザー側の方で設定することが可能です。

SHTMLでは、指定時間後、JavaScriptによる強制転送を行っていますが、JavaScriptをoffにしている場合、コンテンツ自体が表示されない仕組みになっています。(実際のところは、SHTMLのこの機能と、メタタグによる方法の両方を兼用されると、最も効果的です。)

サンプル2の方が「推奨方法」とされているのはなぜ?

サンプル1では、セッション管理などを別途されていない場合には、「戻るボタン」でオリジナルのページに戻れます。それに対して、サンプル2では、移動先のページから「戻るボタン」を使うと、オリジナルのページのさらに一つ前のページに戻ります(移動先のページから見ると「マイナス2ページ」)ので、オリジナルのページには戻れません。

サンプル1は、あくまでも転送先URLのコンテンツを別途準備するのが面倒くさいと感じる人のための便宜的な方法です。サンプル1では、ずっとそのページを見ていた人には、5秒間、「本ページは、勝手ながら、○○分以上の連続閲覧はご遠慮願っています。」(メッセージはカスタマイズ不能)というメッセージが表示されますので何が起こったか分かりますが、少し席を離れていて戻ってきた人は、このメッセージを一切見ることなく、空白のページ(真っ白のページ)だけ見ることになりますので、何が起こったか理解できません。そういうこともあり、サンプル2の方法を推奨します。

でも、結局は何回かに分ければ、何分でも同一ページを見ることができるのでは?

特定のページに対して、1回(もしくは特定回数)の閲覧しか許可しない仕組みを別途準備されていない限りは、その通りです。SHTMLには、通算の閲覧回数をカウントする機能まではありません。完ぺきを期すのであれば、別途クッキーによる方法・ページ閲覧履歴のデータベース管理などのプログラムで行うようにしてください。


© 株式会社プランセス