私はこの記事を読んだばかりで、ほとんど理解できましたが、まだよくわからないことがあります...Solution
一部、作家はについて話しseries of tokens
ます。
彼は決して変わらないユーザー名の一意のIDを意味しましたか?データベースに保存されている通常のユーザーIDは、この用途に適していますか?その「通常の」ユーザーIDはユーザーに知られている可能性が高いので、これが安全に保たれるべきかどうかはわかりません...
そして、大きなスペースからトークンを生成するための良い方法は何ですか? '記事で推奨されているように?
3 に答える
一連のトークンを生成する単純な方法の1つは、ハッシュを繰り返すことです。
T_0:ユーザー名+ハッシュ(ユーザー名)
T_1:ユーザー名+ハッシュ(T_0)
T_2:ユーザー名+ハッシュ(T_1)
..。
このアプローチの欠点は、盗まれたCookieが将来のアクセスを可能にすることです。一連のトークンを生成するためのより良い方法は、CTRスタイルのアプローチを使用することです。
R = rand()
T_0:ユーザー名+ハッシュ(R)
T_1:ユーザー名+ハッシュ(R + 1)
T_2:ユーザー名+ハッシュ(R + 2)
..。
ハッシュが十分に強力であり(たとえば、SHA-256)、乱数が実際には十分な大きさのプールからランダムに選択されている場合(簡単なソースのために、から12バイトを読み取る/dev/urandom
)、1つのCookieの知識はありません。 Webサービスを経由せずに、つまり、将来のCookieを把握するために使用されます。
記事を読む:
ログインCookieには、ユーザーのユーザー名と乱数(以降の「トークン」)が含まれます。
したがって、「一連のトークン」は「ランダムに生成された一連の数字」です。
トークンは、ランダムな文字や数字を含む文字列です。a series of tokens
ランダムな文字/数字のコレクションです
更新:Webサイトで安全なRemember Me機能を作成するには、次の方法が最適です。
- WebサイトをSSLの背後に配置します。パフォーマンスが低下する場合は、機密性の高い部分のみをSSLの背後に配置します。
- ユーザーが「RememberMe」をクリックすると、2つのクッキーが作成されます。1つの通常のセッションCookieと1つの一意の文字列(トークン)
- 両方のCookieが使用可能かどうかを常に確認します。セッションがハイジャックされた場合、ハッカーはセッションCookieのみを所有します。