PHP避免暴露数据的方法

  1. 在链接中需要保存用户的信息,比如qid,通过链接中的qid进入用户中心。
  2. 保证请求接口数据的完整性

GET请求参数不经过验证,直接参与后台数据库操作

链接:http://url?qid=1

如果代码中直接使用链接中传递的值qid进行数据库的改操作,会出现非常严重的问题。通过扫描接口,数据会被恶意的修改,或无故增加过多的无效数据

需要对链接中的参数进行校验。最简单的校验手段就是:追加一个签名字段。修改成http://url?qid=1&sign=esf。后台查看签名和qid是否对应(使用同样的签名方式签名qid和链接的qid进行对比)。

避免暴露同时增加签名最好的方式:建立一个qid和伪qid的对应关系。暴露出去的始终是伪qid,通过链接中的伪qid查询是否存在对应的qid实现了参数的校验。而且每个伪qid的加密方式可以不同,保证了不可能实现破解。

签名sign

类似微信签名的方, 给接口调用方指配标识对。如:company => ‘xx1’, secret => ‘xx2’。调用接口的时候使用company和secret、以及所有的其他请求参数参与签名。服务端通过请求中的company获取secret重新计算签名。