Ошибка IE9 SEC7111 (безопасность HTTPS скомпрометирована) при использовании Facebook REST API

Я автор плагина для Wordpress, который позволяет пользователям входить в свои блоги через Facebook; он использует старый REST API для введения кнопки входа. Как правило, включение API осуществляется с помощью следующего:

<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>

Однако после того, как Facebook представил безопасные соединения (Учетная запись -> Настройки учетной записи -> Безопасность учетной записи -> Безопасный просмотр), всплывающие окна Connect перестали работать. Один пользователь плагина указал, что проблему можно решить, заменив приведенное выше на:

<script type="text/javascript" src="https://ssl.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>

Теперь все работает нормально во всех браузерах, кроме только что выпущенного IE9, который сообщает о следующих двух ошибках (и отказывается инициализировать API Facebook):

SEC7111: безопасность HTTPS скомпрометирована с помощью https://www.facebook.com/extern/login_status.php?api_key=(MY_KEY)&extern=0&channel=(URL_to_my_xd_receiver)

SEC7111: безопасность HTTPS скомпрометирована с помощью https://api.facebook.com/static/v0.4/client_restserver.php?r=1300118768

Обратите внимание, что страница, на которой размещена кнопка Facebook Connect, не является https, и два предыдущих скрипта не были добавлены мной — просмотр источника DOM страницы с помощью инструментов разработчика IE9 показывает, что эти два скрипта включены в div «FB_HiddenContainer», который по-видимому, асинхронно вставляется Facebook при попытке инициализации.

Все, что я нашел в Google относительно SEC7111, относится к страницам https, пытающимся включить сценарии через http, но моя проблема в другом: страница — это http, а сценарии (автоматически загружаемые Facebook) — это https.

Любые мысли будут очень признательны, я довольно озадачен. Если вы хотите поиграть сами, вы можете сделать это на моем сайте http://www.justin-klein.com. Вы заметите, что кнопка «Войти через Facebook» корректно инициализируется во всех браузерах, кроме IE9.


person Metal450    schedule 16.03.2011    source источник
comment
Я действительно не могу вам помочь, и я почти уверен, что вы думали об этом, но я должен спросить... Вы думали об обновлении плагина?   -  person ifaour    schedule 16.03.2011
comment
Конечно. Однако сделать это нетривиально, и на данный момент у меня очень мало времени, поэтому я действительно хотел бы избежать переписывания всего, чтобы удовлетворить IE, если это возможно...   -  person Metal450    schedule 16.03.2011
comment
@ Metal450 Есть новости по вашим проблемам? Я получаю ту же ошибку при попытке отправить переменную get в приложение Canvas (см. facebook.stackoverflow.com/questions/7866581/)   -  person Ian    schedule 24.10.2011


Ответы (1)


Вы можете решить это, используя библиотеку https FB. Подробнее здесь.

Из кешированной версии этого сайта:

SEC7111: безопасность HTTPS нарушена с помощью http://static.ak.fbcdn.net/connect/xd_proxy.php?version=0.

Эту ошибку можно исправить с помощью https-версии:

<script src="https://connect.facebook.net/en_US/all.js"></script>
person Rafael    schedule 16.03.2011
comment
Эй, Рафаэль, спасибо за совет - к сожалению, это новый API, поэтому его использование потребует перезаписи каждого вызова в другой формат (как на стороне Javascript, так и на стороне PHP). Как упоминалось в моем комментарии выше, сделать это довольно нетривиально, и я действительно надеялся на более простое решение, чем переделывать весь плагин только для того, чтобы заставить его работать с IE9... - person Metal450; 17.03.2011
comment
Похоже, со старым API этого не было, и обновление было единственным решением. Таким образом, ответ принят. - person Metal450; 24.03.2012
comment
Единственное, что предлагает ссылка, это использовать https вместо http. Я пробовал это, похоже, проблема не решается. - person pal4life; 30.03.2012
comment
Ссылка не работает, это хороший пример того, почему соответствующую часть ссылки следует скопировать/вставить в ответ. - person LocalPCGuy; 24.09.2014