3

首先,我对 Web API / CORS 和安全实施比较陌生。

这个问题专门针对安全性。Web API 包含极其敏感的数据,并为客户提供在线执行交易的能力。

上下文 :

  • 我有一个 Web API 自托管作为具有固定端口的 Windows 服务。
  • Web API 位于内部网络的防火墙/DMZ 后面。
  • Web API(使用 CORS)仅允许来自外部服务器的流量。
  • 外部服务器使用 IIS 托管我们的网站。
  • Web API 正在使用令牌身份验证(绑定到客户端 IP 以避免劫持)。
  • 外部网站和内部 Web API 都强制使用 SSL。

问题 :

网页通过 javascript 对 Web API 进行 ajax 调用。但是,Web API 并不直接暴露给 Internet。

  • 进行以下设置会对安全产生什么影响?
  • 通过这样做,我也会暴露我的网络什么样的漏洞。
  • 有没有更好的方法来实现这样的设置!?

例如

  • 用户进入https://test.mydomain.com浏览器并获得一个页面。

  • ajax 调用被发送到https://test.mydomain.com/api/test/action

  • 外部服务器将消息路由到不公开的https://test.mydomain.com/api内部服务器。https://myInternalWebAPI/api/test/action

4

1 回答 1

2

所以这需要一些腿部工作,但它已实施到生产环境中,所以我想我会分享解决方案。

我创建了一个 WCF 服务和一个 WebAPI。

主 WCF 服务位于内部网络上,包含所有业务逻辑、数据库连接。代理 WebAPI 模仿 WCF 服务结构并向公众公开。

从客户端(javascript)调用代理 WebAPI,然后代理 WebAPI 调用托管 WCF 服务的内部服务器,瞧,胜利。

于 2014-07-31T06:57:38.923 回答