3

私はplayframework2を使用して非常に安全なログインメカニズムを設計しています。Playにはセッションの概念がなく、Cookie(私が好きなもの)に物事を保持しているので、私は考えなければならないセキュリティ対策は何であるか疑問に思いました。明らかにSSLを使用してログイン資格情報を通信します。また、Cookieは、電子メールやユーザーIDなどのユーザー情報の一部の暗号化された値になります。誰かがそのCookieを盗聴したり、別のユーザーのCookieから取得して再利用したりする可能性はありますか?どうすればこれをより安全にすることができますか?

4

3 に答える 3

2

実際、Cookie は暗号化されていません。サイン入りです。この署名は、application.conf の application.secret から取得されます。

これは、誰もが Cookie の内容を見ることができることを意味します (そして、最終的には他のセッションを偽装したり、ログイン/ID/トークンを変更しようとしたりします...)

Play のドキュメントから:

もちろん、Cookie の値は秘密鍵で署名されているため、クライアントは Cookie データを変更できません (または無効になります)。

私はセキュリティの第一人者ではありませんが、アプリケーションの秘密を守れば、それで十分だと思います。

署名の強さについての議論は大歓迎です!

于 2012-06-27T18:47:56.513 に答える
1

本当に安全にしたい場合は、ログインだけでなく、一般的に SSL 経由で通信する必要があります。そうしないと、誰かが Cookie を取得する可能性があります。Cookie ソリューションまたはより良いプレイ セッションで発生する主な問題は、セッション タイムアウトがないことです。クッキーを取得できたとしたら、このユーザー アカウントを永久に使用できます。したがって、セッションタイムアウトのようなものが必要です。同じクライアントから複数のリクエストがある場合、これは非常に厄介になります。両方が同じ Cookie を変更しようとするからです。回避策は、キャッシュを介してセッション タイムアウトを処理することですが、クラスターで実行する場合は分散キャッシュ ソリューションが必要であることに注意してください。

https://launchpad.net/permsecで、私が書いたセキュリティ ソリューションの変更を追跡することができます。これは、私がしなければならないオープンな ToDo です。

于 2012-06-28T09:30:53.550 に答える
1

通信を傍受して Cookie を盗むリスクがある場合は、攻撃者にとって事態を困難にすることができます。たとえば、署名付き Cookie にコンピューターの IP アドレスを追加します。他の誰かがそれを盗んだ場合、被害者と同じ IP アドレスを使用する必要があります。不可能ではありませんが、レベルが上がります。

于 2012-07-13T07:32:36.427 に答える