0

これは複数の部分からなる質問ですので、どの部分についてもお気軽にご意見をお寄せください。ただし、私は1つの回答しか受け付けられないため、質問されているすべてのことに関して最も完全な回答を受け入れます。関連性があり有用な場合は、部分的な回答に賛成します。

まず、TL; DRに行かずに、このプロジェクトに少し背景を説明します。このプロジェクトでは、 Quake Framework(はい、それは私のものです)を使用しています。簡単に説明すると、 CodeIgniterjQuery 1.8.0を主に使用しています(とりわけ、質問には関係ありません。)また、ローカルストレージをサポートしないブラウザのフォールバックとして、Total Storage jQueryプラグイン(ローカルストレージ用)とjQueryCookiesが含まれています。

パート1:

ユーザー認証システムを構築しました。ログインには「rememberme」機能(まだ機能していません)があります-ユーザーのデータを保存するための最良の方法は何ですか?いくつかの考え:

  • ユーザー名とsha1のパスワードをローカルストレージ/Cookieに保存します。これはおそらく安全でないオプションのように思えますが、よくわかりません。
  • ある種のハッシュ(おそらくPHPのcom_create_guid()?)をlocalstorage / cookieとデータベースに(おそらく有効期限とともに?)保存します。

パート2:

「rememberme」機能の実装後、それを実装し終える最良の方法は何ですか?すべてのページでCookieをチェックする必要があります(ユーザーは最初に任意のページにアクセスでき、再ログする必要があるためですか?)もちろん、各ページはセッションをチェックする必要があり、Cookie/ローカルストレージによって再ログされると、彼らは通常のセッションを取得します。各ページでセッションとCookieの両方をチェックするのは非常に冗長なようです(もちろん、最初にセッションをチェックして、ログインしているユーザーのCookieを繰り返しチェックしないようにします。次に、セッションがない場合はCookieを確認しますが、それでもです。)より良い方法はありますか?

4

1 に答える 1

1

パート1

サーバーでランダムトークン(言及したハッシュ)を生成し、DBとCookieの両方に保存するのが最善です。ランダムにすると、他の人があなたのトークンを「推測」または生成するのを防ぐことができます。GUID を使用するのが最善の選択肢です。

パート2

各ページで、セッションが存在するかどうかを確認できます。利用可能なセッションがない場合は、認証 Cookie を確認してください。認証 Cookie が利用可能な場合は、認証チェック コードをトリガーします。そうすれば、ユーザーがまだログインしていない場合にのみ、認証 Cookie を確認する必要があります。

于 2012-08-23T05:34:33.180 に答える