关于安全支付的几个tips

       今天阅读了一下cft的商户支付接入文档,发现对安全支付这块,包括防止钓鱼等其实是有一些低成本的方案的:

1, 提交请求使用https协议,而不是http协议,可以防止信息在传输通道的安全。


2, 重要信息走后台通知,而不是单独的前端页面跳转。


3, 提交请求考虑更多的使用POST提交,少用GET,原因大家可以自己考虑。


4,提交参数进行数字签名,防止信息被串改;


5,把用户客户端的Ip也作为参数进行提交,同时,该IP作为数字签名的一部分,服务器验证请求的来源IP是否跟参数的一致,为什么?

       想象一个场景:用户A把用户B的请求串拷贝都自己本机上去执行,当然假设A和B的IP 出口不一样。


6,双向确认机制保证安全性,如支付后台通知给到商户一个notify_id,商户通过该notify_id从CFT接口进行反查支付订单。

       注意:这里的notify_id是有有效期的,时间为2 min。


7,前端跳转refer机制验证,当然有些浏览器支持不好导致问题,而refer必须跟接入商户的域名配置一致。

      这里有个小技巧:在内网测试的时候,对refer验证不通过的情况,因为refer可能是localhost,这里CFT给到一个方案是允许金额在100分以下进行支付,方便调试。

      这就是安全性和可用性,方便性的trade - off 问题了。


8,总之,安全问题的策略是从低成本的方案提高恶意用户的“作案”门槛,同时,需要设置多个多层门槛,实行层层保护,像“洋葱”一样,一层剥掉里面还有一层。



你可能感兴趣的:(浏览器,服务器,测试,文档)