如何使服务(Rest API)调用从服务器而不是客户端启动

时间:2018-03-05 09:15:10

标签: angular rest .net-core

我们正在开发Angular2和.NET CORE中的应用程序。

我们的基础架构使得前端部分通过https协议托管并暴露给外部世界,而服务(.NET Core Rest API)将在可通过http协议访问的服务器上使用。

从Angular 2开始,最终客户端也可以调用服务,客户端可以连接到https协议或http协议,因此我们会收到混合内容错误(在Google Chrome控制台中观察到)。

有没有办法可以在Angular 2中确保调用服务是从Web服务器(托管angular2)而不是客户端启动的?

1 个答案:

答案 0 :(得分:0)

仅需说明:网站将始终使用用户的浏览器向客户提出请求。可以通过嗅探请求的IP地址之类的内容来确认。使用另一台计算机为您进行http呼叫将非常危险,并且很可能会进入远程访问工具(一种系统黑客形式)的范畴。想象一下,如果您可以查询银行的网站,并使银行认为您是通过内部计算机访问它的!

基于这些理由,您能够添加安全性,例如根据地理位置将IP地址列入黑名单或更改内容(例如Netflix UK与Netflix US等)。

如果您想实现安全的体系结构,我将建议以下内容(这是我们在投资银行中所做的事情)

  1. 公开暴露一些端点,这将用于从前端到后端进行通信,并从本质上弥合差距。
  2. 这些服务器随后可以呼叫您的安全网络,并可以隐藏任何专用网络流量。
  3. 通过公用端点将数据从专用网络返回到前端。

认为公共端点是一种伪造的设备,因为它提供了受控的入口点,该入口点可以覆盖诸如CORS,授权和身份验证等防御措施,并且还可以将任何对象都屏蔽回公共视图模型中。

如果您需要更多信息,请告诉我:)