3

Tomcat 7.0.32 を使用すると、デフォルトでユーザーが http からアクセスするログイン ページができます。すぐにユーザーを https を使用するようにリダイレクトします。
目標: ユーザーが資格情報を入力した後、http を使用してユーザーをホームページにリダイレクトします。

中間者、セッション ハイジャックなどのセキュリティ リスクを理解しています。

春のセキュリティを使用できません-ゲームでは遅すぎます-リリースが間もなく行われ、httpsのパフォーマンスが低下します。

また、私たちのアプリには「パスワードの変更」ユースケースがあります。ユーザーはホームページのメニューから「changepassword.jsp」にアクセスします。https を使用してユーザーを「changepassword.jsp」にリダイレクトする必要があると思います。パスワードの変更が確認されたら、http を使用してユーザーを再度ホームページにリダイレクトします。考え?

それを行う方法 - 利用可能なサンプルコードはありますか?

更新 1
: 1) http://tomcat.10.n6.nabble.com/Session-lost-when-switching-from-https-to-http-after-upgrade-to-Tomcat から問題について読みました-6-td2105781.html
2) http://tomcat.10.n6.nabble.com/how-to-auto-redirect-to-https-from-http-td2087325.html

https://forums.oracle.com/forums/thread.jspa?threadID=1394970 (Cabir)のコード

私は何を期待すべきですか?

4

4 に答える 4

5

「Spring Security ならできる」と言うが、実は Spring Security は特別なことは何もしていない。自分で行っている HTTPS へのリダイレクトを実行するだけです。安全な Cookie を使用してセッションを作成してから HTTP に戻すと、セッションが失われます。これは、Spring Security FAQで説明されています。説明されているように、HTTPS にリダイレクトする前にセッションを作成すると、セッション cookie は安全であるとフラグ付けされず、HTTP と HTTPS の両方を介して渡され、セッション全体が維持されます。

私が考えることができる他の唯一のオプションは、mod_headers または同等のものを使用してヘッダーを変更し、存在する場合はフラグSet-Cookieを削除することです。これは逆Secureの例で、すべての Cookie にフラグを追加します。

余談ですが、HTTPS を使用してサイトのパフォーマンスを調整してみましたか? コンテンツとユーザー アカウントに真の価値がある場合は、アプリ全体で実際に使用する必要があります。

于 2012-12-02T19:46:25.933 に答える
2

「セッションハイジャック」は、さまざまなコンテキストでさまざまなことを意味します。以前の経験がなく、WireShark を使用して 10 分でセッションをハイジャックできるシステムを検討しています。暗号化されていない状態で飛んでいる Cookie を取得して、Chrome 内にコピーするだけです。参入障壁が低すぎる気がする。

https のパフォーマンス ヒットを再考する必要があります。これは、おそらくhttp 2.0 の必須部分になるでしょう(申し訳ありませんが、PDF)。ドキュメントから (32-33 ページ):

当社の本番フロントエンド マシンでは、SSL/TLS は CPU 負荷の 1% 未満、接続あたりのメモリは 10KB 未満、ネットワーク オーバーヘッドの 2% 未満を占めています - Adam Langley (Google)

パフォーマンスに問題がある場合は、https を回避する代わりに、サーバーで SPDY を構成するのに 10 分を費やします。

于 2012-12-08T21:05:45.960 に答える
1

Tomcat の前に Apache HTTP サーバーを配置することは可能ですか?

リバース プロキシを設定すると、Apache に SSL トラフィックを処理させることができます。

このようにして、ログオンおよびパスワード変更ページの要求を HTTPS にリダイレクトできます。

于 2012-12-03T14:56:16.307 に答える
0

Java Authentication and Authorization Service JAASを使用しない理由 ユーザー資格情報を使用すると、 LoginContext を作成できます

LoginContext はサーバー コンテナーにログインし、そのログイン後、HTTP 要求オブジェクトからユーザー セッションを簡単に取得できます。このようにして、HTTP か HTTPS かに関係なく、ユーザー セッションを取得できます。changepassword リンクをクリックすると、ユーザーは安全な URL に誘導され、要求オブジェクトが必要な情報を提供します。

Java API で Cookie を有効にできます

CookieHandler.setDefault(new CookieManager());

または Cookie ポリシーを設定して、すべての Cookie を受け入れます。

CookieManager customCookieManager = new CookieManager(); customCookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); CookieHandler.setDefault(customCookieManager);

于 2012-12-07T09:43:57.067 に答える