对SSL指向本地主机的域的边缘AJAX调用失败

对SSL指向本地主机的域的边缘AJAX调用失败,ajax,ssl,microsoft-edge,windows-security,Ajax,Ssl,Microsoft Edge,Windows Security,我们的产品依赖于安装在用户计算机上的瘦客户机。我们向一个指向本地主机的域发出ajaxget请求,该主机具有真正的ssl。这在edge中失败,适用于包括IE11在内的所有其他浏览器。请注意,如果不涉及ssl,也可以这样做。它也适用于Windows10家庭版 添加数据类型、内容类型或请求方法无法解决此问题。解决这个问题的唯一方法似乎是运行以下命令 CheckNetSolution环回豁免-a-n=“Microsoft.MicrosoftEdge_8wekyb3d8bbwe” 如果这是预期的行为,是否

我们的产品依赖于安装在用户计算机上的瘦客户机。我们向一个指向本地主机的域发出ajaxget请求,该主机具有真正的ssl。这在edge中失败,适用于包括IE11在内的所有其他浏览器。请注意,如果不涉及ssl,也可以这样做。它也适用于Windows10家庭版

添加数据类型、内容类型或请求方法无法解决此问题。解决这个问题的唯一方法似乎是运行以下命令

CheckNetSolution环回豁免-a-n=“Microsoft.MicrosoftEdge_8wekyb3d8bbwe”


如果这是预期的行为,是否有人能解释为什么microsoft会在企业版上阻止此操作,但它在家庭版上工作?

microsoft Edge和Windows 10应用程序通常使用:

将应用程序与这些资源之外的网络资源隔离 AppContainer专门分配用于防止应用程序 “逃离”环境恶意利用网络 资源。可以为Internet访问授予粒度访问权限, 内部网访问,并充当服务器

您的瘦客户机在win10 enterprise edge上针对
intranet
ssl服务(本地主机)运行,因此默认情况下访问受此机制限制。用命令

CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
您正在为MS Edge的环回网络适配器(localhost)禁用该主机上的网络隔离,以便您的应用程序客户端(以及任何其他本地来源的应用程序)可以在其上运行,而不受任何localhost服务的限制

这在edge中失败,适用于包括IE11在内的所有其他浏览器

他们显然希望改进以前版本的默认安全策略。永远不会太迟,MS:)事实上,有一种可能会阻止你的应用程序在IE上运行。Chrome有其独特的功能,也可以像这样进行调整。Safari和Firefox也有沙盒功能,尽管我不熟悉它们的特殊性

请注意,如果不涉及ssl,也可以这样做

通常,如果您使用ssl是因为您正在处理敏感数据和/或关键服务。如果你不是,放松一点也没关系。同样,这只是一个安全政策问题

它也适用于Windows10家庭版。如果这是预期的行为,有人能解释为什么微软会在企业版上阻止这一行为,但它在家庭版上有效吗

任何产品的企业版本都会受到更严格的限制,因为他们的目标用户更关心安全性(IT人员通常不想将他们公司的intranet payroll db服务暴露给外部攻击者,等等)。此外,在这种情况下,IT部门(签出)的专家可以轻松定义/更改默认行为,因此最好将默认设置保留为“偏执”模式,让专家根据公司的需要进行调整


注意,当您在浏览器上运行瘦客户机时,还有其他机制在起作用,这使得这种保护变得多余(相同的域策略、XSS保护等等)。尽管如此,我们还是要确保万无一失:有一些方法可以绕过那些需要在浏览器和本地网络之间隔离以避免危及系统的防御措施。最后,更少的暴露表面意味着更少的攻击向量,所以隔离是好的,如果你负担得起的话:)

感谢你的回答。您是否可以考虑在edge上检查用户是否启用了环回豁免?这是一个主要障碍。你知道微软将来是否会打开这个吗?谢谢。我不认为你的客户会直接质疑这一点。我的第一个想法是,如果客户端可以连接“请检查本地服务器是否正在运行并启用环回豁免”或类似的内容,则会弹出一个警告。另一种方法是检查一个典型的windows本地服务(如samba,但ssl)是否也丢失,在这种情况下,跳到客户端被阻止访问本地服务的结论。我不认为微软将来会打开这个。趋势是更安全、更严格。即使在家里,他们也希望用户使用Windows 10 S。正如我所说,在任何公司部署此应用程序之前,我要做的就是警告它设置此环回豁免域规则,以便公司域中的每台Windows 10 pro pc都能毫无问题地运行此应用程序。如果我发现一家公司的安全政策过于严格,不允许这样做,我会非常惊讶。。。