当前位置: 首页 > news >正文

网站推广是什么意思设计网站导航大全

网站推广是什么意思,设计网站导航大全,网上教育培训机构,吴志国网站建设工作室Redislua脚本限制ip多次输入错误密码 不能锁username#xff0c;因为如果有人恶意保留破解密码的话。会导致用户本人无法登录。 这里我采用 以ip的方式进行锁定。利用redis 设置key#xff1a;ip。value#xff1a;当前ip尝试登录的次数 实现逻辑 逻辑简单#xff0c;假设…Redislua脚本限制ip多次输入错误密码 不能锁username因为如果有人恶意保留破解密码的话。会导致用户本人无法登录。 这里我采用 以ip的方式进行锁定。利用redis 设置keyip。value当前ip尝试登录的次数 实现逻辑 逻辑简单假设限制错误次数为5 用户登录时。判断key是否存在。如果key不存在说明第一次登录。判断密码是否正确如果正确什么都不干直接返回。如果不正确设置key为ipvalue为1并设置过期时间返回错误信息。如果存在key说明之前尝试登录过。判断value是否大于阈值如果大于阈值刷新过期 并返回错误。如果小于阈值还要判断密码是否正确。如果密码正确删除key并返回正确信息。如果密码不正确将key的value值1并重置过期时间返回密码错误的信息。 以上主要注意两点 一点是有key的情况下密码正确需要删除key。 二是有key的情况下密码错误或者尝试次数大于阈值再次尝试登录需要刷新过期时间。 使用lua脚本主要保证了对上述逻辑的原子性因为涉及获取key的值并判断然后将key的值1 或 删除key。 实现代码 Service类加载时加载lua脚本 private static final DefaultRedisScriptLong CHECK_LOGIN_SCRIPT;// 类加载时 加载lua脚本static {CHECK_LOGIN_SCRIPT new DefaultRedisScript();CHECK_LOGIN_SCRIPT.setLocation(new ClassPathResource(checkLogin.lua));CHECK_LOGIN_SCRIPT.setResultType(Long.class);}具体校验方法主要逻辑调用了lua脚本 private void checkLoginInfo(UserLoginContext userLoginContext) {String username userLoginContext.getUsername();String password userLoginContext.getPassword();//根据用户名查实体 从数据库RPanUser entity getRPanUserByUsername(username);if (Objects.isNull(entity)){throw new RPanBusinessException(用户名不存在);}String salt entity.getSalt(); //获取盐值String encPassword PasswordUtil.encryptPassword(salt, password) ; //将前端传 的密码加密String dbPassword entity.getPassword(); //获取数据库的密码// encPassword 表示前端传过来的 加密后的密码// dbPassword 表示数据库中的 加密后的密码// TODO 调用lua脚本判断 登录失败 登录成功 及锁定ipListString keys new ArrayList();String ipAddress HttpLogEntityBuilder.getIpAddress(userLoginContext.getRequest()); //获取请求ip// key设置为 ipusername进行锁定keys.add(UserConstants.CHECK_LOGIN_PREFIX ipAddress _ username);// 执行lua脚本Long result (Long)redisTemplate.execute(CHECK_LOGIN_SCRIPT, keys, encPassword, dbPassword, UserConstants.CHECK_LOGIN_THRESHOLD, UserConstants.CHECK_LOGIN_EXPIRE);if (result 0){throw new RPanBusinessException(用户名或密码不正确);}if (result -1){throw new RPanBusinessException(输入密码错误达到UserConstants.CHECK_LOGIN_THRESHOLD次请1分钟后尝试);} // if (!Objects.equals(encPassword, dbPassword)) { // throw new RPanBusinessException(密码信息不正确); // }//填入实体信息userLoginContext.setEntity(entity);}lua脚本放在resources目录下 -- 判断用户登录的lua脚本local key1 KEYS[1] local password1 ARGV[1] local password2 ARGV[2] -- 阈值 local threshold ARGV[3] -- 过期时间 local expiretime ARGV[4]-- 判断key是否存在 local value redis.call(get, key1)-- 有key if value thenif(value threshold) thenredis.call(expire, key1, expiretime) -- 刷新过期时间return -1 -- 输入密码错误达到threshold次请1分钟后尝试endif(password1 password2) then -- 校验正确删除key并返回1表示通过redis.call(del, key1)return 1elseredis.call(INCR, key1) -- key的值1redis.call(expire, key1, expiretime) -- 刷新过期时间return 0 -- 用户名或密码不正确end end-- 没有key if(password1 password2) thenreturn 1 elseredis.call(setex, key1, expiretime, 1) -- setex key [过期时间] 1return 0 -- 用户名或密码不正确 end
http://www.zqtcl.cn/news/833042/

相关文章:

  • 宿州公司网站建设企业管理培训课程讲座大全
  • 企业网站营销的优缺点Vs做的网站调试时如何适应网页
  • 策划案网站构成怎么写wordpress建个人博客
  • 自己做的网站别人怎么访问美容行业网站建设多少价格
  • 网站建设与运营 教材 崔海口个人建站模板
  • 做本地网站赚钱吗wordpress桌面宠物
  • 滁州市城市建设投资有限公司网站云服务器里面做网站播放器
  • 做yy头像的网站口碑营销案例简短
  • 卖灯杆的做网站好网页ip代理
  • 做网站开发工具哪个好网络协议分析课程设计报告
  • 如何进行营销型企业网站的优化网站开发有很多种吗
  • 卡片式设计网站营销培训课程视频
  • 网站rss地址生成wordpress 首页幻灯片
  • 网络营销软件专业网站优化方案
  • 展览公司网站建设方案深圳正规做网站的公司
  • 网站做关键词首页淮南网站建设报价
  • 西山区城市建设局网站网页浏览器的英文缩写
  • 个人网站怎么做内容比较好昆明网站制作企业
  • 婚嫁网站建设计划专业 网站建设
  • 成品免费ppt网站做网站玩玩
  • 怎么给网站做seo优化网站的主页按钮怎么做的
  • 蓬莱做网站公司wordpress 加微信号
  • 建设网站如何优化关键词鞍山网站制作招聘网
  • 公司的网站是什么wordpress禁止s.w.org
  • 什么网站做蜘蛛池广渠门做网站的公司
  • 网站建设公司一年多少钱网站建设高校
  • 网站建设以及seo报告的格式
  • 如何做网站免费搭桥链接网站建设使用的什么软件
  • html 门户网站怎么根据网站做二维码
  • 网站增加新闻功能建设境外网站需要什么手续