什么是重放攻击?
合法请求数据被获取后,再次对服务器发起请求!(重复的会话请求就是重放攻击)
参考地址:https://baike.baidu.com/item/%E9%87%8D%E6%94%BE%E6%94%BB%E5%87%BB/2229240?fr=aladdin
参考地址:https://www.cnblogs.com/shijingjing07/p/6123664.html
如何防范?
签名+请求时间戳: 每次请求时根据双方约定的规范组成签名,且每次请求的数据要携带请求时间! 服务器接受请求后,去缓存中查询签名是否存在,如果存在说明是重放攻击,不存在则将签名进行存储!
弊端:一般将签名存储至redis,但是reids有内存显示故设置过期时间,此时如果被清除的签名,再次访问将会合法.为避免这种情况发生,需对请求时间验证,如果时间不在有效范围,则同样会被当做重放攻击.
注意:因为是两台服务器,所以在时间上需要同步,且签名的存储时间要大于请求允许误差时间
同步服务器时间:
安装ntp,然后修改配置文件:etc/ntp.conf
server ip地址,或者域名 iburst minpoll 4 maxpoll 10 (最少2的4次方,最多2的10次方秒同步一次时间)
参考地址:https://blog.csdn.net/xrwwuming/article/details/51496232