私のウェブサイトにログインシステムがあり、データベースに保存されているユーザの詳細はユーザID識別子)、メールアドレス(ユニーク)、表示名(一意ではない)、パスワードとmembersince。
クッキーには何を保存すればよいですか?私は有効期限のあるクッキーにユーザーIDだけを格納し、次にサインアップした後にユーザーがクッキーをチェックしてログインするように考えていました。彼がログアウトすることを決めたら。
*少しの説明も非常に役に立ちます。おかげユーザログイン中に「Remember me」を実装するためにクッキーに保存するもの
答えて
アプリケーションのみが知っている秘密鍵で署名した場合、cookieにuseridを格納することができます。それ以外の場合は、ユーザーがクッキーを何かに変更して、他のユーザーとしてログインすることも可能です。したがって、ユーザーIDを保存する場合は、秘密鍵(理想的にはHMACを使用)を使用してユーザーIDのハッシュを格納し、ログインするときは同じハッシュを計算し、それをクッキーのハッシュと比較します。別の解決策は、ランダムなトークンを生成し、それをデータベースに格納し、それをクッキー内で使用することである。それが長くてランダムであれば、誰かが別の人のトークンを推測する可能性はほとんどありません。
ありがとうたくさんの男 – halocursed
ありがとうございました!しかし、「秘密鍵を持つユーザーID」はどういう意味ですか?私が悪い人で、私はクッキー全体を固め、このハッシュ・ストリングを取得して私がログインしたユーザーであるとふりをして、サーバーが私が間違った人であることを知ることができますか? – Jaskey
秘密鍵のポイントは、クッキーを設定するだけで、あなたが望むどんなユーザーでも "ログイン"できないことを確認することです。秘密鍵を知らなければ、あなたはクッキーを構築する方法がありません。既存のユーザーのCookie全体を作成する場合は、もちろんそのユーザーとしてログインすることができます。 1)ある時間後にクッキーを期限切れにする(クッキーにタイムスタンプをエンコードする)、2)特定のIPアドレスに固有のクッキーを作成する(再度、クッキー内のIPアドレスをエンコードする)、3)特定のユーザエージェント文字列に固有のものにします(これは簡単に偽造することができます) –
はPHPが組み込まれていあなたが探している正確に何をセッション管理:
http://us.php.net/manual/en/book.session.php
を私はクッキーにUSER_IDを保存することをお勧めしません。代わりに、独自のトークンを生成し、データベース内のユーザーとトークンを関連付けることができ、&が各要求でトークンを再生成することを確認できます。ここでもセッション管理はPHPに組み込まれているため、少し冗長です。
あなたはそれについて少し説明できますか? – halocursed
クッキーの有効期限を2日またはユーザーを覚えて保存したい日数に加えて保存します。
PHP '$ _SESSIONはこれを行います。フルコントロールが必要な場合は、独自のセッションクラスを作成することもできます。
小さなチュートリアルでは、ここに発見された:ここでhttp://www.tizag.com/phpT/phpsessions.php
ではなく、PHPのデフォルトのストアのセッションにMySQLを使用するための小さな一例です(/ tmp内のファイル): http://www.hawkee.com/snippet/2018/
- 1. 「Remember me」クッキーとCSRFプロテクションの保存
- 2. Grailsアプリケーションで「remember me」を実装する
- 3. フェニックスでremember-meを実装する
- 4. データベースにデータを保存せずにクッキー内の "remember me"トークンを保護する方法はありますか?
- 5. 「Remember Me」機能のためにクッキーにTOKENとVERIFIERが必要ですか?
- 6. WinForms/WPFの "Remember Me"チェックボックスを実装する最良の方法
- 7. Remember Meチェックボックス:認証情報を安全に保存するには?
- 8. WPFアプリケーションで「Remember me」を実装する方法
- 9. C#で "Remember Me"パスワード機能を実装する方法は?
- 10. feathers.jsとJWTで「remember me」機能を実装する方法
- 11. Remember-Me-cookie - トークンを保存する場所
- 12. "remember me"という情報をローカルに保存するC#(new newbeginner)
- 13. Rails 4 + Remember Me To Cookieにメールアドレスを保存する - 正しいメールアドレスを保存できません。
- 14. ASP.NET Web APIクッキーを使用した「Remember Me」機能
- 15. Rails - "remember me"ケイパビリティ
- 16. Laravel Socialite Remember Me
- 17. MVVM - データを保存するためにModelViewに 'IsDirty'機能を実装する
- 18. ユーザが入力したものを保存するためにjsフィドルにクッキーを追加する
- 19. Remember Me - ユーザ名を取得する - MVC
- 20. Spring Security remember-meサービス
- 21. Grails Spring Security Remember Me
- 22. Remember-me CookieとVarnish
- 23. aspログインフォームに「remember me」ボックスを追加する
- 24. ログイン情報を保存するためのクッキーを設定するPHP
- 25. asp.netのWebページで "Remember Me"
- 26. jsf 2.0の "remember me"機能
- 27. thinkthruure IdentityServer「remember me」の設定
- 28. 春のセキュリティUsernamePasswordAuthenticationFilter with remember-me
- 29. Spring SecurityのRemember-me機能
- 30. 実装方法* Amazon Cognito sdkを使用して* Remember me *オプションを実装しますか?
は、すでに答えているように思えます自分自身の質問、ユーザーIDを保管してください。 – TechTravelThink
これは安全ではありません - 下記の回答を参照してください。 – Jon