# 防止劫持

这里说的劫持主要是运营商劫持,出现的情况可能存在以下几种:

  • 请求结果返回后运营商插入恶意代码。
  • 响应头status字段返回40* 50*系列状态时遭运营商重定向。

这种情况下导致最终的请求结果与我们实际想要的结果有差异,解决办法有:

  • 全站启用 HTTPS 安全协议。
  • 使用 HTTPDNS,例如阿里云的 https://www.aliyun.com/product/httpdns

框架对运营商劫持也做了初步防范,每次数据返回前会对客户端的系统环境进行检测,如果是在 HTTPS 状态下响应头status字段返回真实状态,否则始终返回 200 状态,而请求结果中的status字段始终会是真实状态,所以各个终端在 API 请求结束后,对于状态的判断一共有二处。

  1. 客户端响应头中的status状态值
  2. 返回数据结构中的status字段值