SSL이 혼합 된 웹 응용 프로그램 (asp.net 3.5)이 있습니다. 모든 계정 관련 페이지는 SSL을 통해 제공됩니다. 대부분의 다른 페이지는 non-ssl을 통해 전달됩니다. HTTPS와 HTTP 사이를 자동으로 전환하려면 this component을 사용하십시오. 최근 비보안 Wifi 네트워크에서 사용자 세션을 도용하는 기능에 관한 뉴스 항목이있었습니다. 이것은 비 SSL 연결을 통해 전송되는 쿠키를 포착하여 가능해야합니다.asp.net은 requireSSL을 사용하고 비 SSL 페이지에서 사용자가 인증되었는지 계속 확인할 수 있습니다.
이 웹 응용 프로그램에서 내 보안 선택 사항을 검토하게되었습니다. 나는 (다시) MSDN에서 this article을 얻었고 requireSSL = true 내 Formsauthentication 속성을 시도했습니다. Webapplication을 시작하기 전에이 정보가 포함 된 쿠키가 웹 브라우저와주고받지 않기 때문에 User.Identity가 비 SSL 페이지에서 null이된다는 것을 알았습니다.
SSL 연결을 통해 사용자를 인증하는 메커니즘이 필요하며 비 SSL 페이지에서도이 인증 정보를 기억합니다.
SO 검색 중에 this post을 찾았습니다. 이것이 나에게 좋은 해결책이라고 생각됩니다. 하지만 솔루션이 Sessionstate에 로그인 정보를 저장하는 과정에서 발견 될 수 있을지 궁금합니다. 나는 Global.asax에서 Application_AuthenticateRequest를 잡을 생각이다. 연결이 안전한지 확인하고 authcookie 또는 Session을 확인하십시오. 나는 이것을 어떻게 구현할 것인지 정확히 알지 못한다. 이걸 가지고 나랑 생각할 수 있을까?
안녕하세요 Brad, 답장을 보내 주셔서 감사합니다. 우리가 http와 https를 섞은 두 가지 이유. 첫째, 이미지도 전자 메일 메시지에 제공되는 응용 프로그램입니다. HTML 전자 메일 메시지에 사용되는 이미지는 호환성 문제로 인해 HTTPS를 통해 보내지 않는 것이 좋습니다. 또한 비 SSL 연결을 통해 이러한 이미지를 제공하기 때문에 사용자에게 혼합 된 콘텐츠를 허용할지 묻는 팝업이 응용 프로그램 내에 표시됩니다.메시지 된 전자 메일과 동일한 이미지가 응용 프로그램 내에서 사용됩니다. – JonHendrix
두 번째로, 자산 (CSS, JS, 이미지 등)은 SSL을 통해 전달 될 때 캐시되지 않습니다. 즉, 모든 요청은 매번 많은 자산을 보냅니다. 비록 이것이 약간의 수정과 최적화를 통해 해결 될 수 있지만, 대부분의 리소스가 캐싱 될 때 응용 프로그램이 응답하고 더 잘 작동한다고 여전히 생각합니다. – JonHendrix
저는 애플리케이션 자체에 대해서만 이야기하고 있습니다. 자산은 아닙니다. SSL 및 비 SSL 모두에서 이미지를 제공 할 수 있다는 것은 커다란 문제가 아닙니다. 제공되는 비 SSL 이미지가 인증을 필요로하지 않는다고 가정합니다 (전자 메일 메시지에 임베드되어 있기 때문에). , 나는 그들이하지 않는다고 생각하고있다). –