防止恶意登录的设计思路
关于上一篇《关于加密解密设计思路》提到的动态密钥,加密解密的设计思路来保证每次password。key这类重要信息每次请求都发生变化,可是我用抓包工具截获get,post请求时,假设我password动态加密完,是keyjafjalewei78732可是我假设没对这个内容做有效期校验。还是照样能够登录系统,进行恶意破坏。
因为我们常常实现这样的,都是在一个类似单点登录的跨服务的web系统上,比方A系统发送post请求登录B系统。我们能够做两套安全方案:
一,我们的密钥每天变换一次。加密好的密文还掺杂有密钥随机数和分钟数,接收方能够依据约定好的规则进行解密。解密完能够得知请求是在一分钟内,或者5分钟内的请求key,有人会认为5分钟太长了吧。可是实际场景中Aserver,Bserver的时间不一定同步,有时还差不止5分钟。这样有人就会问了。刚才keyjafjalewei78732这个东西不是在5分钟内,我能够任意地登录破坏。二。这时我们能够把keyjafjalewei78732放入缓存中。能够设置缓存有效期是20分钟,这样有人恶意发送keyjafjalewei78732,我缓存有这个东西了,照样没法登录。尽管缓存serverkill后会失效,可是我排除故障,启动server的时间应该不止5分钟吧。
所以还是比較安全的,能够有效控制恶意登录。