2010-07-19 7 views
3

클라이언트 브라우저에서 SSL을 지원하는지 어떻게 감지 할 수 있습니까? 을 서버 변수 HTTPS_ *에 연결하지 않습니다. 브라우저에 SSL 지원이없는 경우 을 확인할 수 있기를 원합니다.SSL 브라우저 지원 감지

P. 이 회사 (http://www.cyscape.com) 에는 브라우저 옵션에서 SSL 지원을 선택 해제 할 때도 감지 할 수있는 제품이 있기 때문에 가능합니다.

답변

1

모든 브라우저에는 SSL 지원 (기간)이 있습니다. 아무도 사용할 수없는 브라우저를 출시하지 않습니다. HTTPS는 보안 요구 사항이며 OWASP A3 : 브로큰 인증 및 세션 관리입니다.

+0

물론 크롤러와 다른 유형의 봇에는 없을 수 있습니다. :) – blowdart

0

서버가 SSL 연결을 지원하는지 확인하는 것은 비교적 쉬운 반면, 브라우저 지원을 감지하는 것은 매우 어렵습니다. 이 솔루션에는 브라우저 구성 또는 SSL 지원을위한 버전 정보를 검색하는 데 필요한 논리를 구현하는 클라이언트 측 브라우저 확장이 필요할 수 있습니다. 이 문제는 확장이 여러 브라우저에서 작동해야하기 때문에 더욱 어려워집니다.

SSL을 통해 특정 페이지에 연결할 수없는 방문자는 일반적으로 SSL 요구 사항을 통보받는 방문 페이지로 리디렉션하는 것과 같이 사용할 수있는 서버 측 방법이 있습니다. 단순히 웹 요청을 거부합니다.

+0

그리고 Rook은 현재 사용중인 대부분의 브라우저가 SSL을 지원한다고 가정하는 것이 합리적입니다. 그렇지 않은 경우에는 사이트에 대한 액세스를 거부하는 데 사용할 수있는 방법이 서버 쪽과 클라이언트 쪽 모두에 있습니다. –

0

앞서 언급했듯이 최신 웹 브라우저에는 기본적으로 SSL이 사용되지 않습니다.

SSL 수준에서 브라우저에 https 링크를 제공하면 서버가 연결을 수신합니까?

HTTP 수준에서는 HTTP를 통해 세션 쿠키를 할당 한 다음 HTTPS를 통해서만 액세스 할 수있는 링크를 통해 일부 세션 변수를 업데이트하는 다양한 시나리오를 시도 할 수 있습니다. 또는 쿠키에 "보안"속성을 설정하고 브라우저가 쿠키를 처리하는 방법을 확인할 수 있습니다.

JavaScript 방법론을 시도하고 window.location 속성을 검사하거나 https 링크로 설정해보십시오. (또는 LiveConnect를 사용하여 일부 Java 기능을 시도하거나 Flash와 비슷한 기능을 수행하십시오.)

질문에 대한 특별한 동기가 있습니까? 기괴한 이유로 SSL을 사용할 수없는 브라우저에 대한 SSL 지원을 결정하려는 경우 쿠키 또는 JavaScript 접근 방식이 좋을 것입니다. 적대적인 브라우저 (예 : robots.txt를 따르지 않는 봇)에 대한 SSL 지원을 결정하려는 경우 또는 JavaScript와 같은 클라이언트 측 확인을 신뢰하지 않는 이유가 더 많은 경우 SSL을 확인하는 것이 유용하지 않을 수 있습니다 SSL 핸드 쉐이크가 일반적인 브라우저와 다른지 확인해보십시오.

0

클라이언트가 SSL을 지원하는지 여부는 활성 네트워크 공격자가 사용자의 연결을 제어하고 클라이언트가 SSL을 지원하지 않는 것처럼 보이게 만드는 중간자 (Man-in-the-Middle) 공격의 영향을 받는지 검사합니다.

이 질문은 실제 SSL을 지원하지 않는 구형 전화를 대상으로하는 모바일 사이트 (WAP-TLS를 지원)를 개발할 때 가장 자주 묻습니다. 이 범주의 전화 수가 계속 줄어들고 제 제안은 사용자 에이전트를 블랙리스트에 올려 놓기 위해 무시하는 것입니다.