質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

12172閲覧

タイムアウトの平均について

waiemu

総合スコア14

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/03/26 09:45

Laravelを使って会員制出欠管理システムを制作しているのですが、最近利用者から
「ずっとログインしたままにできないのか?」
「ログインした状態をもっと長くしてほしい」
という要望がありました。

現在ログインしてからタイムアウトするまでの時間はデフォルトのまま'120分'となっていますが、初心者である私には、この時間が平均的なのかどうかもわからない状態です。

要点としては
・セキュリティの問題
・利便性の問題
・メモリの問題
が考えられ、

■セッション保持時間が長くなると
・セキュリティの問題
同じ端末で複数の利用者がいる場合に危険
・利便性の問題
利用者は毎回ログインしなくて良い為、操作性は上がる
・メモリの問題
メモリの圧迫が大きくなる ⇒ 会員数が多くなるほど肥大化

■セッション保持時間が短くなると
・セキュリティの問題
利用後にログアウトをしなくても、しばらく使っていないと勝手にログアウトするから安心
・利便性の問題
システムに訪れる度にログインを要求され、手間がかかる(現状)
・メモリの問題
メモリの利用量は少なくて済む

上記のような知識しかないのですが、設定する時間について何かアドバイスをいただけないでしょうか?

例えばセッションを1週間保持するとすれば、考え得る問題(プログラム的にも、現実の環境でも)は何があるでしょうか?

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

2時間が長いとは思いませんが、中途半端だなとは思います。
セッションタイムアウト以前の問題として、そもそもログアウト機能はなんのためにあるのかというテーマに関して、以前ブログ記事を書きました。

ログアウト機能の目的と実現方法

ぶっちゃけて言えば、「ログアウト機能はなくても重大な問題ではない」というのが結論です。ログアウト機能がなくても大きな問題ではないと言っているわけですから、セッションタイムアウトが長いことも大きな問題ではありません。

現実問題として、最近の普及しているウェブサイトの多くは、twitterもgoogleもfacebookも基本的にはログイン状態を保持し続けます。そうしても、大きな問題ではないからです。
たとえば、離席中の操作をされるという点については、PCをロックすればよいことであり、PCのロックはウェブサイトを使わなくても元々必要なことです。であれば、PCもロックし、ウェブサイトもタイムアウトするのは対策が重複していることになります。デメリットがなければそれでもいいのですが、ユーザーの手間が増えるというデメリットがあります。

それでも、安全性が大幅に増すのであれば手間を惜しむなということになるわけですが、前述の記事で書いたように、そもそも大幅に安全性が増すわけではありません。

加えて、頻繁にログインを要求してしまうと、ユーザーは安易なパスワードをつけがちになります。これこそが警戒すべきことで、絶対に避けなければなりません。

そのような背景から、最近のウェブサイトはセッションタイムアウト時間が長いのだと思います。

ただし、利用時間が短いサイトであれば、タイムアウトを短くしてもよいでしょう。そのあたりは、利用シーンと合わせて考えればよいと思います。

投稿2019/03/26 11:26

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/03/26 11:29

スマートフォンアプリのことも加味したら仰る通りでしたね。 自分でPCのスクリーンセーバーのこと出しておきながらそれと同じと言い切ってしまって恥ずかしい…。
waiemu

2019/03/27 03:25

ご回答ありがとうございます。 ブログ拝見させていただきました。具体的なメリットとデメリットが明示されており、大変参考になりました。ありがとうございます。 >2時間が長いとは思いませんが、中途半端だなとは思います。 ご意見いただきありがとうございます。 利用シーンについては少し検討が必要そうですが、やはりユーザから直接要求があったようにログイン状態保持時間を長くする、ないしは永続化(できるように)する方向で進めたいと思います。ありがとうございました。
guest

0

セッション時間は正直、ケースバイケースです。

「ずっとログインしたままにできないのか?」
「ログインした状態をもっと長くしてほしい」

ログイン画面に「ログイン情報を保存する」のようなチェックボックス等実装してみては如何でしょうか。
情報を保存していいブラウザか否か等をお客様に委ねる事ができると思います。

投稿2019/03/26 09:54

IshibashiTanaka

総合スコア152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

waiemu

2019/03/27 01:08

ご回答ありがとうございます。「ログイン情報を保存する」にチェックした場合、その保存する期間はどのぐらいかという疑問が出てくるのですが、それについて何か目安となる基準はあるのでしょうか?例えばこの出欠管理システムは頻繁に出欠を取り扱う学校の授業のようなこともあれば、1か月に一回イベントを行うために使っているユーザーもいます。この場合は、保管期間は1か月(43200 分)とするべきでしょうか?ユーザーの割合は「1か月に一回イベントをする」ユーザーが大半として、なのですが。
guest

0

120分

私的感覚ですが「長すぎる」ですね。
「ログインしてからタイムアウトするまでの時間」と書かれているので語弊ありそうですが、
正確には「ログイン後の無操作時間」ですよね。

PマークやISMSを取得している企業なんかですと「クリアデスククリアスクリーン」の方針に従い、PCのスクリーンセーバー起動までの時間が15分と設定されているところも多いでしょうから、
「無操作時間中に席を立ったときのリスク」に大変気を配っていることだと思います。それと同じですね。

ですので、そこはセキュリティリスクをきちんと理解してもらった上で設定した時間であることを分かってもらう必要があります。
この「無操作での自動ログアウト時間をどうするか」は要件定義時点で決めることも多いと思います。
また導入時に理解を得るための説明会・教育を行うところも多いと思います。

投稿2019/03/26 10:10

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

waiemu

2019/03/27 02:45

ご回答ありがとうございます。私も最初は長いと思ったのですが、このシステムを使う上でそこまでセキュリティにこだわるべきか、というのが色々調べてから思ったことです。例えばAmazonではログイン状態を保持し続け、購入時や重要な情報にアクセスするときにログインを尋ねられるようです。正確な仕様も伝えず恐縮ですが、利便性とセキュリティの天秤が、おそらくこのシステムでは「利便性」を重要視するべきかな、と個人的に思いました。
m.ts10806

2019/03/27 02:50

というより要件ですね。 仰るように「そこまでこだわるべきか」という内容でしたら緩くしても良いでしょうし。 いずれも一長一短かなと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問