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; 

}

Однако, как представляется, не изменится, когда я переход от небезопасной для защиты страниц. Я пробовал это с помощью Yahoo и Hotmail, чтобы узнать, есть ли проблема с приложением, к которому я обращаюсь, но там тоже он ведет себя одинаково.

Любой указатель на то, что я могу делать неправильно? Заранее спасибо.

ответ

1

Это немного сложнее, даже если сама страница загружается через SSL, она может вставлять скрипты, загруженные через простой HTTP. Это означало бы, что вся страница не безопасна, потому что небезопасный скрипт может поставить под угрозу все остальное. Таким образом, вы должны полагаться на существующие механизмы, а именно: browser.securityUI property (также доступно по адресу tabbrowser). Ответ here объясняет, как можно проверить статус SSL на странице.

Однако вы, вероятно, захотите узнать, когда изменится статус SSL. Для этого вы бы use a progress listener. Метод onSecurityChange() будет вызван для всех соответствующих изменений, вам нужно будет проверить параметр aState (соединение защищено только тогда, когда aState & Components.interfaces.nsIWebProgress.STATE_IS_SECURE дает ненулевое значение).

+0

Спасибо, грузы, Palant. Позвольте мне попробовать. – okello

+0

Hello Palant. Я внес некоторые изменения, чтобы включить ваши предложения, но я столкнулся с некоторыми проблемами. Я обновил вопрос (выше), чтобы отразить это. Как вы думаете, что я ошибаюсь? – okello

+0

Нет, я не вижу ничего плохого в коде, который вы там цитируете. –

 Смежные вопросы

  • Нет связанных вопросов^_^