如何检测 IE 是不是将我的站点作为受信任站点访问?

Posted

技术标签:

【中文标题】如何检测 IE 是不是将我的站点作为受信任站点访问?【英文标题】:How to detect if IE access my site as a trusted site?如何检测 IE 是否将我的站点作为受信任站点访问? 【发布时间】:2010-09-20 06:19:01 【问题描述】:

是否可以确定我的网站是否作为受信任的网站被访问?在another question 中,我们确定,一般来说,查看客户端 IE 设置是不明智的。这算不算例外?

我想这样做的原因是某些功能将无法工作,除非该网站作为受信任的网站被访问(例如客户端发送邮件——不要问),我想能够警告用户。尽管页面中有许多警告,但许多用户仍然不阅读,并向我们发送 nastygrams。我们希望通过检测这种情况并闪烁一个大警告来减少电子邮件量!" 欢迎提出任何想法。

编辑:在我们的商店中,客户端 sendmail 仅在站点受信任的情况下才有效,由于安全要求,我无法更改它,也无法切换到服务器端 sendmail。但是,这不是客户端 sendmail 失败的唯一原因,所以我不能简单地捕获 sendmail 错误来确定这一点。另外,我不希望这降级为 sendmail 讨论。

【问题讨论】:

首先,您能提供一些示例代码吗?我看不到 try/catch 如何解决它。其次,我知道您不希望对技术/实施进行战争,但我们能问一下您为什么要尝试以这种方式发送电子邮件吗?这似乎是最不稳定的选择。 该应用程序支持对多个 Sarbanes-Oxley 敏感应用程序的更改授权机制的一部分。安全人员坚持认为客户端发送邮件是防止欺骗发件人地址的唯一方法。没有任何争论会改变他们的想法。 @Ken Paul,您对检测受信任站点有任何想法吗...请我也需要... @SJnawali,还没有答案。 【参考方案1】:

这是一个你可以使用的测试:

function isTrustedIE()
    try
        var test=new ActiveXObject("Scripting.FileSystemObject");
    
    catch(e)
        return false;
    

    return true;

如果用户禁用了该特定对象,即使在受信任的站点上,这当然也会失败。

【讨论】:

我试过了,但没有用。在受信任和不受信任的站点中,它对我来说都是真实的。与我(以及我的典型用户)相比,我认为您在受信任区域和不受信任区域之间存在不同的差异。【参考方案2】:

据我了解,这是不可能的,但您可能会对更具体的条件进行一些运气测试,例如您需要的特定技术的可用性。您的客户端代码对浏览器有什么类型的要求(ActiveX、Java、脚本等)?了解这将是了解如何针对客户端代码所需的环境测试客户端浏览器的良好开端。

【讨论】:

我在问题中添加了对失败技术的解释。不过,我不确定这是否有帮助。【参考方案3】:

您可以询问当前登录用户的用户名,如果您得到它,您将知道该站点位于“受信任的站点”或“本地 Intranet”区域中。

【讨论】:

我正在对此进行测试,并将报告结果。谢谢 - 这看起来很有希望。 这没有帮助。人们习惯于接受 ActiveX 警告,以至于我能够打开 WShell.Script 对象,而不管该站点是否受信任。【参考方案4】:

在仍然支持异常组合的同时,解决此问题的一个好方法可能是测试特定行为是否成功。

例如,如果你需要这样做

a.innerhtml = "abc"; 

然后你可以检查innerHTML是否被改变了。不幸的是,我不能向您保证所有功能都是可检测的。 此外,try...catch 语句可能非常有用。

【讨论】:

【参考方案5】:

在您的情况下(您正在处理的具体问题是 sendmail 失败),我仍然建议捕获 sendmail 失败,然后给出一个更一般的答案。 “您的邮件失败了。它可能由于以下任何原因而失败”,然后输入一个项目符号列表,顶部有“没有使此站点受信任”漂亮而粗体。如果 sendmail 失败的原因不是您的网站不受信任,那么您的用户可能也需要知道这一点。

【讨论】:

以上是关于如何检测 IE 是不是将我的站点作为受信任站点访问?的主要内容,如果未能解决你的问题,请参考以下文章

ActiveX控件在IE8中不起作用

如何解决IE浏览器跨域问题

Api 只能从受信任的站点访问,不能通过任何浏览器、邮递员等访问

泛微OA插件无法运行,求助!急

电脑安全警告怎么解除?

如何将网址设为可信任站点