有没有一种方法可以通过javascript判断浏览器是否启用了“增强安全配置”?
我经常遇到某些控件在动态加载的内容中无法正常工作的问题。这只发生在运行在Windows Server 2003/2008系统上的浏览器中,即使我将服务器添加到“受信任”的区域中也是如此。
也许有人已经开发出了实现此任务的方法?
提前感谢!
有没有一种方法可以通过javascript判断浏览器是否启用了“增强安全配置”?
我经常遇到某些控件在动态加载的内容中无法正常工作的问题。这只发生在运行在Windows Server 2003/2008系统上的浏览器中,即使我将服务器添加到“受信任”的区域中也是如此。
也许有人已经开发出了实现此任务的方法?
提前感谢!
我们可以测试IE ESC的效果,而不是直接测试它。
我发现启用ESC后,动态添加内容的onclick事件不会触发。 所以我直接测试这些事件。
var IEESCEnabled = true;
var testButton = $("<button style=\"display: none;\" onclick=\"IEESCEnabled = false; alert('No problems here.');\">Test IE ESC</button>");
testButton.click();
if (IEESCEnabled) {
alert("We have a problem.");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
我认为这是不可能的,如果还存在这种情况,那么这可能是一个漏洞,迟早会被修复。
这种“额外安全性”的主要目的之一是让客户端拥有它,但不被服务器检测到,从而使它们无法知道何时尝试规避它以及何时不需要。
使用增强安全配置时,JavaScript 不是被禁用了吗?
那么,如果你只想向用户显示一条消息,只需在普通的 HTML 中显示消息,并用 JavaScript 隐藏它,这样只有没有启用 JavaScript 的用户才能看到。如果你需要在服务器端处理(例如输出不同版本的网站),只需包含 JavaScript 重定向用户到启用 JavaScript 的版本。没有启用 JavaScript 的用户将保持在非 JS 页面上。
如果只禁用了可脚本化的 ActiveX,同样的方法适用,只需插入一个 ActiveX 并尝试“脚本化”它,如果失败,可以重定向、显示消息等等。
当然,上述方法并不能直接检测增强安全配置本身,但却能检测到启用增强安全配置时出现的症状。因此,它可能无法区分使用增强安全配置的用户与仅禁用了 JS/ActiveX 或首先使用不支持脚本的浏览器的用户。
我想你可以在用户代理字符串中寻找SV1。