首先,我对 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