J2EE では、https と http の異なるリクエストに対して、Web コンテナは 2 つの異なるセッション オブジェクトを生成します。そのため、同じ Web アプリケーション内の一部のページのみが SSL を使用する場合は、SSL を使用するページと使用しないページを確認してください。 SSL を使用する ページ間を切り替えるとき (つまり、https リクエストと http リクエストの間で切り替えるとき) にセッションは継続します。これは、アクセスされた URL で sessionId を渡すことによって実現できます。つまり、https に入る URL または https から出る URL に sessionId をバインドすることによって実現できます。たとえば、http から https に切り替える場合、URL は次のようになります: https://xxx/login.do;jsessionid=<%=session.getId()%>、https から http に切り替える場合、URL は次のようになります。 http://xxx/ xxx.do;jsessionid=。このようにして、Web コンテナは新しいセッション ID を生成するのではなく、このセッション ID に基づいてセッション オブジェクトを取得することを優先するため、http と https の間で切り替えてもセッションが変更されないことが保証されます (この方法は Tomcat で検証されています)。
URL にバインドされた sessionid は盗まれやすいため、セッションがハイジャックされないようにするには、セッション認証をクライアント IP と組み合わせる必要があります。つまり、ユーザーが正常にログインした後、セッションを通じてセッション認証を行う必要があります。 setAttribute("clientIp",request.getRemoteAddr ()) クライアントの IP アドレスを保存します。その後、セッションの有効性を認証するときに、クライアントの IP がセッション オブジェクトの clientIP 属性に元々格納されていたクライアント IP であるかどうかを判断する必要があります。そうでない場合、そのセッションは不正なセッションです。
http は https に直接ジャンプします。リダイレクトするだけです。 php を使用するとさらに簡単です:
リーリーhttpにアクセスする場合はhttps:にジャンプします
リーリーhttpsにアクセスする場合は、http:
にジャンプします リーリーWeb ページの先頭に上記のコードを追加するだけです。
を使用してください。