Edge AJAX调用无法通过SSL指向localhost

时间:2017-04-29 22:19:30

标签: ajax ssl microsoft-edge windows-security

我们的产品依赖于安装在用户计算机上的瘦客户端。我们向指向具有真实ssl的本地主机的域发出ajax get请求。这在边缘失败,适用于包括IE11在内的所有其他浏览器。请注意,如果不涉及ssl,则同样有效。它也适用于Windows 10 Home Edition。

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

CheckNetIsolation LoopbackExempt -a -n =“Microsoft.MicrosoftEdge_8wekyb3d8bbwe”

如果这是预期的行为,有人可以解释为什么微软会在企业版上阻止它,但它适用于家庭版吗?

1 个答案:

答案 0 :(得分:3)

Microsoft Edge和Windows 10应用程序通常使用AppContainer Isolation

  

将应用程序与网络资源隔离开来   专门分配,AppContainer阻止应用程序   “逃避”其环境并恶意利用网络   资源。可以为Internet访问授予细粒度访问权限,   Intranet访问,并充当服务器。

您的瘦客户端在win10企业边缘上针对intranet ssl服务(localhost)运行,因此默认情况下访问受此机制的限制。使用命令

CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"

您正在该主机上为MS Edge的环回网络适配器(localhost)禁用网络隔离,以便您的应用客户端(以及任何其他本地源应用)可以在其上运行,而不受任何本地主机服务的限制。

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

他们显然希望改进以前版本的默认安全策略。它永远不会太晚,MS :)实际上有一个Enhanced Protected Mode (EPM)可能会阻止你的应用程序在IE上运行。 Chrome的Google Chrome Sandbox也可以像这样调整。 Safari和Firefox也有沙盒功能,虽然我不熟悉它们的特殊性。

请注意,如果没有涉及ssl,同样有效。

通常,如果您使用ssl是因为您正在处理敏感数据和/或关键服务。如果你不是,那就更好了。再次,只是安全政策问题。

它也适用于Windows 10 Home Edition。如果这是预期的行为,有人可以解释为什么微软会在企业版上阻止它,但它适用于家庭版吗?

众所周知,任何产品的企业版都会受到更多限制,因为他们的目标用户更关注安全性(IT人员通常不希望将公司的内部网工资单数据服务公开给外部攻击者,以及类似的事情)。此外,在这种情况下,IT部门的专家可以轻松定义/更改默认行为(请查看domain security policies),因此最好将默认设置保留为“偏执”模式,并让专家根据公司的需求。

请注意,当您在浏览器上运行瘦客户端时,还有其他机制可以使这种保护变为冗余(相同的域策略,XSS保护等)。然而,永远不会太安全:有办法解决那些需要在浏览器和本地网络之间隔离的Self-XSS等防御措施,以避免危及系统安全。最后,较少暴露的表面意味着较少的攻击向量,因此如果你能负担得起隔离是好的:)