防止劫持
这里说的劫持主要是运营商劫持,出现的情况可能存在以下几种:
- 请求结果返回后运营商插入恶意代码。
- 响应头
status
字段返回40* 50*
系列状态时遭运营商重定向。
这种情况下导致最终的请求结果与我们实际想要的结果有差异,解决办法有:
- 全站启用 HTTPS 安全协议。
- 使用 HTTPDNS,例如阿里云的 https://www.aliyun.com/product/httpdns
框架对运营商劫持也做了初步防范,每次数据返回前会对客户端的系统环境进行检测,如果是在 HTTPS 状态下响应头status
字段返回真实状态,否则始终返回 200 状态,而请求结果中的status
字段始终会是真实状态,所以各个终端在 API 请求结束后,对于状态的判断一共有二处。
- 客户端响应头中的
status
状态值 - 返回数据结构中的
status
字段值