16 December 2016

背景:写一个支付的接口,在价格方面,我直接让前端传过来。老大教训了我,不能这样做,如果别人恶意传递个其他参数过来,那么就会让这个 “黑客” 为所欲为了。正确的做法是传递一个编号,然后在数据库里面根据这个编号查找出价格


写接口的时候要考虑,如果有人知道这个接口的调用方法,传了恶意数据怎么处理


另外一个常见的例子:用户领取优惠券
正常的开发是:当用户要领取优惠券的时候,前端传递一个优惠券的 id 过来,然后在数据库中写入一条记录。这个就和我们在 京东、淘宝 上领取优惠券类似
但是,如果 “黑客” 知道了我们这个请求的 URL,他可以随便传一个 id 过来

正确的开发过程应该是:设置一个优惠券的领取门槛(即使在项目中没有这个限制),传入 id 的时候进行判断这个 id 对应的优惠券的限制是什么,什么样的用户可以领取,每个人最多可以领取多少张等