2012-01-04 13 views
3

私は、既存のログイン動作を利用するウェブサイト用の追加サービスを作成していますが、ユーザーから追加のサインアップの詳細が必要です。新しいサービスは別のサブドメインで実行されます。特定のユーザーからのhttp要求を確実にするにはどうすればよいですか?

ユーザーは自分のデータWebアプリケーションにリソースを作成できます。このリソースは、そのユーザーのデータコレクションに対して保存する必要があります。

このユーザーIDは、httpリクエストの本体にあるwebappに渡されることが期待されます。しかし、私は、悪意のある攻撃が、他のユーザーからのように要求を表示するために、本文のユーザー名を書き換える可能性があると懸念しています。

これをより安全にするにはどうすればよいですか? (そして、CSRF攻撃として、このカウントしていますか?)新しいサービスはあなたが特定のユーザーから来ているhttpリクエストを確保することはできません3.

+0

あなたは春3と言っているときにも春のセキュリティを意味するのですか? – Eugene

+0

現在のセキュリティはすべてメインアプリケーションによって処理されますが、現在のユーザーのGUIDと名前を取得することを除いて、アクセス権はありません。 – laura

答えて

5

春で、Javaで書かれている

、あなただけの検証を試みることができますユーザと要求を含む。通常これは、ログインまたは認証プロセス中にチケットを作成し、その後のリクエストでそのチケットを要求することによって行われます。チケットをユーザーと照合し、有効なものとして受け入れることができます。チケットは一定期間使用しないと期限切れとなり、ユーザーは再度ログインする必要があります。

+0

ありがとう、これは私がやったことについて考えたことです - 可能な魔法がなければ。 – laura

+0

非アクティブ時間に加えて、絶対セッション時間を追加すると、より安全になります。たとえば、20分間の非アクティブまたは4時間の絶対認証と再認証と新しいチケットが生成されます。 – LaJmOn

+0

IPアドレスと参照元のホスト情報(どちらもなりすまし)を信頼できませんが、予想外のIP /参照元を取得した場合は、間違っている可能性があるため再認証が必要です。 – LaJmOn

0

可能であれば、メインのウェブサイトが使用するのと同じセキュリティスタックでリクエストを渡す必要があります。

できない場合は、Spring Securityを使用して認証を処理します。そのようなサービスリクエストを認証するためのSpring Security用のプラグインがすでに存在するかどうかはわかりませんが、セッションでCookieを使用する必要がある場合は、認証ステップを処理するのはクライアントの問題です。

したがって、通常の形式のログオンを使用することも、トークン要求のセットアップをまとめることもできますが、それははるかに複雑です。

関連する問題