2012-01-23 3 views
0

ローカルパブがユーザーに画像、メニューなどのスライドショーを表示するためのスクリプトを設定しています。私のURLはキー(uuid)を受け取ります。そこからスクリプトは関連するコンテンツをデータベースに照会しますcompany_idに基づくキー。サイトは、javascriptまたはjquery経由で画像を回転させます。長期セッションを使用していますか?

コンテンツを提供する前に、セッションまたはユーザーが認証されていることを確認して、有効なcompany_idが関連付けられていることを確認します。

ウェブセッションには常に$_SESSION個の変数が使用されています。実際にセッションをタイムアウトさせる必要はないので、タイムアウトしないようにphp.iniに設定できるフラグはありますか?または、このタイプの作業にクッキーを使用する方が有益でしょうか?

ありがとうございました。

+0

この質問をご覧になることをおすすめします。http://stackoverflow.com/q/5577106/82447 – klennepette

答えて

1

遠くの有効期限のユーザーのログイントークンを保存するためにCookieを使用する方がよいでしょう。自動ログインします。$_SESSIONを無期限に保存すると、サーバー上にリソースが浪費されますファイルシステム。代わりに、クッキーには、データベース内のユーザーに関連付けられているトークン(推測不可能な値)を保持できます。基本情報は、データベースから取得してから、ユーザーが戻ったときに取得できます。

1

session_start()を呼び出すと、スクリプトはセッションIDを含むユーザーのブラウザにCookieを設定しようとしますが、セッションIDが想定されているので「推測不可能な値」を保持するよう手動で設定する必要はありませんとにかくあること。

iniファイル内でsession.cookie-lifetime(おそらくini_set())を変更して、セッションの終了時にクッキーのタイムアウトを防ぐことができます。

保存$_SESSIONはセッションファイルを無期限に蓄積します。セッションを有効にしておくと、同じファイルが何度も何度も何度も再利用されます(セッションIDの後に名前が付けられます)。セッションガベージコレクタに組み込まれたPHPは、とにかくデッドセッションをクリアします。

一般的にセッションが永遠に続くのは悪い考えですが、それはあなたのローカルパブだからです。だれかがセッションを試みてハイジャックすることは考えられません。 (彼らがした場合にも及び、彼らは取得したいすべての権利、日曜日の昼食のために何ですか?):)

編集: また、定期的に、もう少しセキュリティを追加するために、セッションIDを再生成することができます。