md5签名加盐如果在服务器端相互调用是不会暴露盐的内容的。
如果是前端页面上加盐请求服务端,黑客知晓js中的盐内容,中间拦截并修改了签名和请求参数怎么办呢
可以进行以下操作
1、请求服务端动态盐值接口
2、服务端程序生成唯一盐值
3、服务端程序将盐值保存在缓存中并设置有效期
4、前端拿到盐值后,按请求参数和顺序+动态盐值生成签名,
5、后端根据请求参数和顺序+缓存中盐值生成md5,判断与前端盐值是否一致即可。
这样在传输过程中看不到盐值且盐值为动态值就比较安全了。
有个朋友问我如果盐值过期怎么办?很好的问题
想了一下,可以设置合理的时间,如果盐值过期,提示用户页面过期。
另外也可以给每个用户单独分配盐值,如果用户提交了,这个盐值在缓存中可以干掉,如果用户没有提交,那可以给这个盐值设置个超长的有效期,防止缓存永久占用空间。