故事的开始,面试官问了我一个问题:
如何防止http请求中数据被篡改?
回答:
1.设置客户端IP黑/白名单
1.1.客户端所有请求,请求到代理服务器(nginx),代理服务器维护黑/白名单的ip,决定是否转发请求。
1.2.项目创建一个filter,拦截所有请求,在filter的方法中,通过request信息匹配ip黑/白名单,和url的拦截规则,决定是否合法。
优点:简单粗暴。
缺点:需要客户端的IP固定。
应用场景:并发量小的场景。比如系统的后台管理服务,客服需要人工审批和通过涉及到钱财的业务,就可以使用这种简单粗暴的方式,防止账号泄露,接口泄露等等。
2.请求参数Sign签名
2.1前端发起http请求,对参数排序,然后使用 参数与私钥拼接,在进行md5加密 等方式,