2009-03-03 16 views
3

私は、ユーザーがアカウントを作成してサイトのコンテンツにアクセスできるウェブサイトを構築しています。ユーザーがサイトにアクセスするたびにログインするようにはしたくないので、ユーザー名とパスワードをクッキーに保存することを計画していますが、パスワードがハッシュされていてもこれは悪い習慣であると聞いていますクッキーウェブサイト訪問の間に資格情報を安全に保存する

私のウェブサイトへの訪問間にユーザーの資格情報を安全に覚えておくために、「ベストプラクティス」を実行する必要がありますか?

答えて

2

これを実行しないでください。オープンにパスワードを投げる。

安全な方法:

ストア同じ列の同じ行のデータベース内のユーザ名、ランダムに生成された塩の価値、塩を含むパスワードのハッシュチェックサム。ユーザーの資格情報を持つテーブルを参照するセッションには、別のテーブルを使用します。ユーザーがセッションの有効期限を切れる日付(たとえば、15日後)にログインすると、セッションテーブルに挿入できます。セッションIDをクッキーに格納します。

次回ユーザーがログインすると、パスワードが取得され、ユーザーのsaltが追加され、ハッシュが取得され、取得したものと比較されます。それらがセッションテーブルに行を挿入し、セッションIDをクッキーに送信することで、セッションを開くことができます。ユーザーがログインしているかどうか、およびこのCookieによってどのユーザーかを確認できます。

編集:

この方法は、ほとんどのサイトで最も普及しています。安全で実用的なバランスが取れています。

セッションIDに自動インクリメント値を使用するだけではありません。繰り返すのは難しい複雑なチェックサムを使って作成します。たとえば、username、timestamp、salt、別のランダムな塩を連結し、md5またはshaチェックサムを作成します。

ウェブサイト/サービスにユーザー資格情報を含む機能を実装するには、クライアントとサーバー間の資格情報に関連するデータの交換が必要です。これは、中間のattacsなどで人間にデータを公開します。さらに、クッキーはユーザーのハードディスクに保存されます。 100%安全な方法はありません。

セキュリティを強化したい場合は、サイトをhttpsにすることができます。これにより、人々はミドルアタックでクッキーとパスワードを盗んでしまうのを防ぎます。

注:ミックスでIPアドレスを伴う

は本当に良いアイデアではありません。ほとんどの場合、複数のクライアントがNATなどを介して同じIPアドレスから来ることになります。

+0

セッションIDをクッキーに保存しておけば、誰かがクッキーを盗んで自分のクッキーを操作し、自分のユーザーの身元を引き継ぐことができます。私が誤解した場合は私を修正してください。 – Juliet

+0

あなたは正しいです。セキュリティを強化したい場合は、サイトをhttpsにすることができます。これにより、人々はミドルアタックでクッキーとパスワードを盗んでしまうのを防ぎます。 – Vasil

+0

誰も証明書を調べていないので、MITM攻撃の可能性があります。 –

2

パスワードを保存する必要はありません。アプリケーションを識別できるユーザーの識別子にすぎません。あなたが知っておく必要があり

もの:

  • クッキーがコピーされている場合は、他のユーザがそのユーザ
  • のふりをすることができるようになりますが、そのクッキーを構築できないようにする必要があり別のユーザーとしてそれらを認証する

これらを処理する可能性のある解決策は、次回にアプリケーションを使用するときに変更される各ユーザーのワンタイムキーを作成することです。

ユーザを完全に安全に覚えていることはおそらくありませんので、機密データが含まれていない場合にのみ使用してください。

+0

-1を使用すると、クライアント側の証明書を使用して認証済みのユーザーを安全に識別できます。 –

+0

... – cjk

0

ユーザー名のハッシュをクッキーに保存すると、この「記憶する」機能が提供される可能性があります。

システムの機密性の高い領域では、ユーザーがキャッシュされた資格情報でシステムを入力したため、実際の損害を引き起こす前にユーザー名とパスワードの入力を求めることが必要です。これは、セッションベースのフラグとして保持することができます。

1

どのような形式のパスワードも、Cookieに保存しないでください。クッキーは簡単に盗まれる可能性があります。

一部のブラウザは既にパスワードの保存をサポートしています。なぜユーザーは代わりにそれを使用させるのですか?

関連する問題