正确认识与相同主机/不同的端口和安全CORS(Properly Understanding CORS

2019-10-22 06:07发布

我没有做很多客户端的网络编程,所以我想抓住它与我的具体情况这一概念。

我在50000s的端口上运行一个RESTful的WCF服务。 另外,我有一堆写在HTML5 / CSS3 / JavaScript的网页表单(不是ASP的WebForms),使AJAX调用这个WCF服务。 该网站形式托管在同一台主机上,但使用端口80通过网络形式作出是否所有Ajax调用GET只请求。

另外,我有一个第三方的云托管的应用程序,它是在一个完全不同的位置(不同的主机),这需要调用WCF服务也是如此。 这种通信进行POST S& PUT s到WCF服务。

显然,电话正在从第三方取得托管云应用是跨原点。 从我的研究看来,不同的端口实际上不同的起源。

我知道,安全和CORS是不同的概念,但在这里就是我试图完成,我需要更好地了解这一切是如何工作的:
现在,我让所有的跨域请求,和一切工作,但我想,以限制它放下来提高安全性,然后最终建立起与两个web表单和WCF服务使用相同的证书运输安全HTTPS。 第三方云服务托管,应用程序仍然需要能够与WCF服务进行通信,所以我需要允许它以不同的方式进行身份验证,这样就会有做一个秘密 - 密钥过去了,因为一切都是服务器端只要。

这整个通信“三角”阴暗的感觉对我来说,我希望SO是正确的地方为我张贴了这个问题,因为它不是直接相关的代码。

  1. 在WCF - Web表单以上情况考虑跨域描述?
  2. A)如果上述不跨域,我会那么只需要通过Access-Control-Allow-Origin: 'https://my-cloud-host'在我的web.config?

    B)如果是我的理解是只需要回显在标题中允许的起源(S)。 我该怎么设置(如果有的话)的Access-Control-Allow-Origin在IIS在这种情况下? 我该怎么回应,如果它是不允许的,只是原来的由来?
  3. 将我的主意,用相互SSL认证工作相同的证书,如果他们在不同端口上托管? 这会阻止云服务从与WCF服务进行通信,或者将具有第二端点允许吗?
  4. 难道我失去我的心? 我所以通过这件事混淆。

Answer 1:

  1. 是。 在除IE所有主流浏览器,不同的端口被认为是另一个起源。
  2. A)是正确的。 你只需要让你的端口80原产地发送请求。
  3. 对此我不确定。 我倾向于beleive这是SSL端口awared,你不能使用不同的端口相同的证书。
  4. 你可以阅读这个优秀的文章 ,让您的头脑休息。


文章来源: Properly Understanding CORS with Same Host / Different Port & Security