上QQ阅读APP看书,第一时间看更新
1.3.9 不要信任服务
这里的服务是指任何外部或者内部提供的系统、平台、接口、功能,也包括自研客户端和作为客户端功能的软件,例如浏览器、FTP上传下载工具等。
在实践中,我们常常见到,对于由外部第三方提供的服务,特别是银行支付接口、短信通道接口,应用一般都是直接信任的,对其返回值或者回调请求缺少校验。同样,对于内部服务,应用一般也是直接信任的。事实上,这种盲目的信任关系会导致严重的安全风险。如外部和内部服务被成功控制后,我们的业务也可能会受到直接影响。对于来自自研客户端或者作为客户端功能的软件的数据更应该进行严格校验,因为这些数据被恶意篡改的概率是非常大的。例如,黑客通过逆向工程(Reverse Engineering)对自研客户端进行反编译(Decompilation),往往可以直接分析出客户端和服务器端交互的数据格式,从而可以进一步模拟请求或者伪造请求而尝试入侵。