1. 常用的攻击方式
- 劫持apple server攻击
- 重复验证攻击
- 跨app攻击
- 换价格攻击
- 歧义攻击
- 中间人攻击
2. 讲解攻击方式及处理
- 劫持apple server攻击
通过dns污染,让客户端通过假的apple_server进行verify,从而认为自己支付成功。这个主要针对客户端验证发货的方式,如果是服务端验证,就没效果了
- 重复验证攻击
因为同一个receipt,如果第一次验证成功,那么之后每次验证都会成功。如果服务端没有判重机制,就会导致一个receipt被当做多次充值处理。
为了预防这种情况,我们可以将receipt做一次md5得到receipt_md5, 每次发送充值请求的时候就按照receipt_md5判重,如果重复就停止商品发放;或者根据解析得到的信息进行判重
- 跨app攻击
通过在别的app中拿到receipt,然后发送到我们app中。因为这个receipt是合法的而且apple不会验证请求的源,所以这个receipt是可以验证通过的
对于这种情况,我们可以判断apple verify的返回值apple_callback_data中对应的bundle_id和我们app的bundle_id是否一样来进行验证
- 换价格攻击
在同一个app中,用低价商品的receipt伪造购买高价商品。这时候bundle_id和我们app的bund