Обнаружение текущей зоны безопасности Internet Explorer - PullRequest
9 голосов
/ 09 марта 2009

Существует ли какой-либо метод программного определения текущих настроек зоны безопасности для Internet Explorer?

Я хотел бы знать, когда на моем сайте будет заблокирован элемент управления ActiveX XMLHttpRequest из-за политики безопасности IE, но до того, как сайт действительно попытается его создать, что приведет к появлению желтой полосы вверху (с пометкой «В помощь Для защиты вашей безопасности Internet Explorer ограничил использование этой веб-страницы сценариями или элементами управления ActiveX, которые могут получить доступ к вашему компьютеру. ")

Спасибо.

Ответы [ 4 ]

9 голосов
/ 11 января 2012

В IE7 вы можете использовать следующий JavaScript, чтобы получить представление о том, является ли ваш сайт надежным или нет:

window.status = "test";
if (window.status == "test")
  alert("Trusted, or local intranet");
else
  alert("Not trusted, or internet");

Это основано на том факте, что в IE7 и более поздних версиях сценарии больше не могут задавать текст строки состояния с помощью метода window.status в Интернете и ограниченных зонах. См. Примечания к выпуску для Internet Explorer 7

1 голос
/ 14 января 2010

Зона безопасности не имеет значения, потому что пользователи Windows могут сами определять, какие протоколы и в какой зоне обрабатываются. Например, я добавил весь http и всю зону https в зону доверенных сайтов (зона 2). Это делается с помощью клавиши

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet     Settings\ZoneMap\ProtocolDefaults

Вы можете проверить файл document.protocol через javascript, но как это вам поможет?

if (document.protocol == "HTTP (HyperText Transfer-Protokoll)")

Вы предполагаете, что это интернет-зона, но на моем компьютере это доверенная зона с индивидуальными настройками безопасности. Достаточно того, что jscript не позволит вам получить индивидуальные значения параметров безопасности для каждой зоны.

Можно выполнять объекты activex без этой тупой желтой полосы, но вам нужно добавить направляющие объектов com в список безопасных объектов com. Это делается через реестр. По умолчанию небезопасно для большинства объектов, за исключением некоторых глупых бесполезных объектов, таких как flash activex, wmp activex и прочее

0 голосов
/ 09 марта 2009

Я хотел бы знать, когда мой сайт заблокирует элемент управления ActiveX XMLHttpRequest из-за политики безопасности IE

Невозможно даже, если бы вы знали, в какой зоне вы находитесь, поскольку вы не можете прочитать настройки для каждой зоны, а в IE6SP2 появилось больше настроек, влияющих на ActiveX, которые нельзя настроить на Зональная основа. (IE7 имеет еще более специфичные для элемента управления настройки.)

Я не знаю способа спекулятивно создать XMLHttpRequest и избегать желтой полосы, за исключением того, что когда-либо использовался только собственный "новый объект XMLHttpRequest ()", что делает вас несовместимым с IE6.

0 голосов
/ 09 марта 2009

Примечание : я не могу удалить принятый ответ, но вы можете найти этот ответ полезным .

Оригинальный ответ:

В JavaScript нет дескриптора для определения зоны безопасности, используемой IE.

Чтобы сделать то, что вам нужно, вы можете проверить document.location и определить из этого зону безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...