私はユーザー ログイン システムを実装しており、コミュニティによってセキュリティ上の懸念を実行したいだけです。
ユーザー アカウントの作成時に、Java の PBKDF2 を使用して、ユーザーのパスワード/ソルトを暗号化してデータベースに保存する予定です。もちろん、すべて HTTPS 経由で行われます。私が使用したリソースには、この機能を実装する方法を文書化した実際のソース コードが含まれており、質問の最後にそのリンクを含めます。
「私を覚えている」機能に。これを実装する適切な方法は次のとおりです。
- ログイン時に UUID セッション キーを生成し、キーをデータベースに保存し、クライアント側のキーを Cookie に保存します。
- 新しいセッションが作成されたら、Cookie からキーを取得し、データベースと比較して、新しいキーを作成し、クライアント側で復元します。
ここにセキュリティ上の脆弱性はありますか? 多くのリソースが、ユーザーのIPアドレスをセッションキーと一緒に保存し、IPが一致しない場合はキーを無効にすることを提案していることを知っています. ユーザーがモバイル ネットワークからアクセスしている場合、IP は頻繁に変更されませんか? Wi-Fi でも、最近はほとんどのアプリケーションが IP 検証を使用していないようですか? 動的 IP が変更されたとしても、Gmail のようなアプリケーションはログアウトしませんか?
資力:
Java での安全なパスワードの保存: http://www.javacodegeeks.com/2012/05/secure-password-storage-donts-dos-and.html
Java での「ログイン状態維持」の実装: Web アプリケーションへのユーザー ログイン時に「ログイン状態維持」を実装する方法