2017-01-01 9 views
2

私は電子メールとパスワードまたはトークンを介してログインする方法を提供するWebバックエンドを含むアプリケーションを開発しました。電子メールでログインすると、サーバーは30日後にユーザーレコードにトークンを保存します。このトークンを使用すると、毎回電子メールとパスワードを入力する必要なく、自動的にログインすることができます。少なくとも30日間。ログイントークンは有効期限が切れますか?

私の質問:本当にトークンが期限切れになる必要がありますか?もしそうなら、なぜですか?

bye

答えて

5

ユーザビリティ-答えが、「いいえ、それは有効期限が切れてはならない」である セキュリティの答えはなぜ

を「はい、それは間違いなく期限切れにすべき」です:弱い認証とセッション管理がOWASPトップ上のナンバー2でありますTen(1)。セッションのハイジャックやその他のセッションベースの攻撃から防御するための一般的なベストプラクティスは、セッションの有効期限です。このようにして、盗まれた、予測された、またはブルート強制的なトークンの影響が軽減されます。また、時間を短縮し、攻撃者はトークンを「破壊」する必要があります。 ここでセッションの有効期限についての概要を確認できます:(2

+0

私はセキュリティアンサーに同意しません。セッションのハイジャックを防ぐためのベストプラクティスはHTTPSだと主張します。 HTTPSを使用できない場合(理由は?)、PKキーペアまたはセキュリティで保護されたチャネルで共有された共有秘密鍵のいずれかを使用して、要求に暗号で署名する必要があります。いずれのアプローチでもトークンの有効期限なしにセッションハイジャック(後者の場合は正確なリプレイ攻撃を除く)を防ぐことができます。これはトークンが最初にワイヤを介して送信されることはなく、したがってエンドポイントが侵害されない限りあなたは本当の安全保障を持っておらず、すべてが虚偽です)。 – dgatwood

+0

HTTPSを使用している場合でも、危殆化したクライアントエンドポイントの影響を最小限に抑えるため、トークンの有効期限を_ポイント_に設定する必要があります。マシンにアクセスできる人は誰でも、特にラップトップ、タブレット、携帯電話などで、盗まれる傾向があるため、認証することができます。 – Optimae

1

アプリケーションのセキュリティ要件によって異なります。誰かがアプリケーションにログインした後で、元のユーザー用に作成されたトークンを使用して他の誰かがログインしてログインできることを覚えておいてください。

関連する問題