2012-05-24 3 views
0

저는 브라우저로 사용하는 독립형 XULRunner 앱을 개발했습니다. 앱에 URL이 표시되지 않습니다. SSL (즉, URL이 https://으로 시작하는)을 사용하여 액세스하는 사이트인지 확인하고 싶습니다. 그들이 속한 사이트의 섹션이 안전하거나 그렇지 않은 경우 사용자에게 메시지를 표시하고 싶습니다. 그리고 URL을 SSL을 사용하고 있는지 검사하는 방법입니다. 나는 약간의 검색을했지만 지금까지 성공하지는 못했지만 포기하지 않았다. 모든 제안은 매우 감사하겠습니다.사이트에서 SSL을 사용하는지 확인하는 방법

몇 가지 변경을했는데 이제는 onSecurityChange() 방법이 아래에 나와 있습니다.

onSecurityChange: function(aWebProgress, aRequest, aState) { 
    if((aState & Components.interfaces.nsIWebProgress.STATE_IS_SECURE) == 0) { 
    document.getElementById("lblConnectionStatus").setAttribute("value", "Insecure Connection"); 
    } else { 
    document.getElementById("lblConnectionStatus").setAttribute("value", "Secure Connection"); 
    } 
    return 0; 

}

그러나, 내가 페이지를 확보하기 위해 안전하지 않은에서 전환 할 때 변경하지 않는 것. 야후와 핫메일에서 문제가 애플리케이션에 있는지 여부를 확인하기 위해 시도했지만 문제도 마찬가지입니다.

내가 잘못하고있는 부분에 대한 포인터는 무엇입니까? 미리 감사드립니다.

답변

1

좀 더 복잡합니다. 페이지 자체가 SSL을 통해로드되는 경우에도 일반 HTTP를 통해로드 된 스크립트를 내장 할 수 있습니다. 즉, 전체 페이지가 이 아니고이 아니라는 것을 의미합니다. 안전하지 않은 스크립트가 다른 모든 것을 손상시킬 수 있기 때문입니다. 따라서 기존 메커니즘 인 browser.securityUI property (tabbrowser에서도 사용 가능)에 의존해야합니다. here은 페이지의 SSL 상태를 확인하는 방법을 설명합니다.

그러나 SSL 상태가 언제 바뀌는지를 알고 싶을 것입니다. 그건 use a progress listener입니다. onSecurityChange() 메서드가 모든 관련 변경에 대해 호출 될 것이므로 이 0이 아닌 값을 제공하는 경우에만 연결이 안전합니다. aState 매개 변수를 확인해야합니다.

+0

감사합니다, Palant. 내가 그것을 밖으로 시도하자. – okello

+0

안녕하세요 Palant. 귀하의 제안을 반영하기 위해 몇 가지 변경 작업을 수행했지만 일부 문제에 직면하고 있습니다. 이를 반영하기 위해 위의 질문을 업데이트했습니다. 내가 뭘 잘못하고 있다고 생각하니? – okello

+0

아니요, 내가 인용 한 코드에 아무런 이상이 없습니다. –