1

いくつかの Web ( REST) サービスを実装する単純な Java サーバー アプリケーションがあるとします。アプリケーションは のようにデプロイさwarTomcatます。ここで、次のようにユーザー認証を追加したいと思います。

  • usersサーバー側でユーザー名とパスワードを含むプレーン テキスト ファイルを追加します。ユーザーは各リクエストでユーザー名とパスワードの両方を送信する必要があり、サーバーはそれらをファイルに対してテストします。

  • パスワードがクリア テキストとして送信されるのを防ぐために、.NET で使用されているような一方向暗号化を検討してい/etc/passwdます。そのため、ユーザーはパスワードをリクエストで送信する前に暗号化する必要があります。

このアプローチは意味がありますか?Javaでこのアプローチの「すぐに使える」実装はありますか?

4

4 に答える 4

3

春のセキュリティ?これは、Web アプリを保護する非侵入型の方法であり、データの保存方法が非常に柔軟です。つまり、プレーン テキスト ファイル、xml、またはユーザー名とパスワードのデータベースです。

于 2012-09-24T14:24:04.367 に答える
1

この猫の皮を剥ぐ方法はたくさんあります。まず、クライアント側のハッシュに依存するとリプレイ攻撃を受ける可能性があるため、ダイジェスト認証またはSSLフォームベースの認証を使用することをお勧めします。

私の推奨は、SpringSecurityを使用することです。このHTTPダイジェスト認証の例を見てください。

別の方法は、サーブレットコンテナを使用してこれを実現することです。ダイジェストとフォームベースの認証手法の両方については、こちらをご覧ください。

また、Webアプリケーションの適切なパスワードストレージ技術を実際に読んでおく必要があります。bcryptのような十分に複雑な(別名遅い)ハッシュアルゴリズムを使用していることを確認し、各パスワードに一意のソルトを与えます。最後に、HTTPダイジェスト認証(正常)を使用するか、SSLフォームベースの認証(より適切)を使用して、資格情報の転送が安全であることを確認します。

于 2012-09-24T14:28:11.433 に答える
1

Use a RESTful framework like Jersey for example. But for authentication you must implement session management with request filters. As for users management you should use a database like MySQL.

于 2012-09-24T14:29:42.390 に答える
1

はい、BASIC (SSL 経由)、OAuth、Kerberos、Spring Security など、既存の優れた認証ソリューションが多数あります。多くのレイヤー (コンテナー、フィルター、アプリケーション自体) があるため、WS-Security のトピックについて調査することをお勧めします。 ) 認証が行われる場所。

于 2012-09-24T14:31:10.930 に答える