3

I’m developing a website of a client and they are sending out newsletters to their customers (through the website administration interface) The newsletters are personal to each of the subscribed recipients/customers. Each recipient/ customer is also a user with a username/password that enables them to sign in on the website and manage their newsletter subscriptions and participate in the sites community.

This all works like a charm. Now my client want a “Manage my subscriptions” link in the newsletter email that when pressed automatically signs the recipient/customer in on the website with no need to remember username and password.

This could be easily solved be making a link like this:

http://mysite.com/manage.aspx?user=peter&password=hounddog

Of course information should not be clear text but encrypted in some way.

This however poses a problem since the only way a user can be authenticated on the website if by providing a valid username and password. In the name of security, passwords are stored as hashed values in the database making it impossible for me to insert the password in the link.

What is the best way to accomplish this without compromising the security?

4

3 に答える 3

6

パスワード入力せずにログインできるようにしたい場合は、セキュリティを多少犠牲にする必要があります。(あなたの例のように)パスワードにアクセスできたとしても、平文で送信されるメールメッセージに埋め込む必要があることに注意してください。

各ユーザーとメッセージに関連付けられた Guid を作成し、それを URL に追加して、自動的にログインできるようにすることができます。

ニュースレターの GUID リンクを介したログインでは購読の管理のみが許可され、フォーラムに参加するには実際のパスワード ログインが必要になるように、権限を分離することもできます。その場合、誰かがメール メッセージから Guid にアクセスした場合に壊される可能性のある大混乱はかなり限られています。

于 2008-10-07T12:47:36.327 に答える
2

パスワードのハッシュ値が束ねられた暗号化されたユーザー名を挿入できませんでしたか?

つまり、ユーザー名を常に特定の長さになるように暗号化およびエンコードするか、既知のブレーク文字を含むようにしてから、パスワードのハッシュ値を追加します。このようにして、ユーザー名とパスワードを安全にエンコードしながら、クエリ文字列を簡単に分割できます。アクセスを許可するには、暗号化されていないデコードされたユーザー名を使用して、ハッシュ値を直接比較するだけで十分です。

于 2008-10-07T12:50:20.813 に答える
1

アクセス トークンを含む暗号化された Cookie の使用についてはどうでしょうか。この Cookie は、別のページによる認証が成功した後に配信されます。

この種のトークンは、URL クエリ文字列の一部にすることもできます。

また、http の代わりにセキュアな https の使用を検討することもできます。

于 2008-10-07T12:48:40.817 に答える