web-dev-qa-db-ja.com

Cookieを安全な方法で使用してユーザーを認証する方法は?

ほとんどの場合、Cookieを使用して、ユーザーを自分のWebサイトに再訪問することを覚えています。

私の初期/愚かな日には、CookieにUserID(自動インクリメント整数)を保存し、ユーザーが戻ってきたら、そのCookie値を使用して自動的にログインしました。 Cookieを簡単に編集して別の整数を使用し、他のユーザーとしてログインできるため、これは悪い考えでした。

UserIDがGUIDの場合、これと同じ方法でUserIDを保存しても大丈夫ですか?

「記憶」Cookieを保存するためのベストプラクティスは何ですか?

7
jessegavin

sessionsを使用してこの種のシナリオを処理することを検討する必要があります。

セッションは通常、ユーザーの認証用に一意のGUIDを生成し、それをユーザーのローカルマシンのCookieに保存するか、URLを介してページ間で受け渡します。

このセッションGUIDは、サーバー上のファイルまたはデータベースエントリを指します。このエントリは、ユーザーのCookie/URLのGUIDをデータを保持するファイルまたはデータベースエントリのGUID。

セッションGUID以外はエンドユーザーには何も見えないため、一般に、セッションにもっと機密性の高いデータ(ユーザーIDなど)を配置しても安全です。

ほとんどのWebベースの言語には、何らかのセッション管理が組み込まれています。

2
Nat Ryall

2つのCookieを保存します。

  • UserId:ユーザーIDが含まれます
  • Password:ユーザーのパスワードのSHA1が含まれます

非常に簡単で安全。 HttpOnly属性を覚えておいてください

1
Thomas Bonini