javaweb如何防止同一个ip对自己网站的频繁访问,写数据?

JAVA-上帝之手 2018-11-05 10:02:59
最近做了一个网站,为了防止 某些无聊的人 利用开发工具频繁的往我数据库写数据,加了验证码,,但是我觉得每个保存数据的地方都加验证码,用户体验不好。。于是用 redis + 拦截器做了一个验证,当访问速度1秒内好几次,那么我就拦截这个请求。这个已经实现,,问题::如果别人用开发工具定时每隔5秒写一次,这样这个拦截器又没有作用了。请问各位大佬有没有好点的解决方案。


(还有注意如果某个人处于wife下,他实际用的内网,其他人也用这个wife,那么所有的人应该都用的是同一个公网地址)
...全文
762 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
smwhotjay 2018-11-12
  • 打赏
  • 举报
回复

硬件防火墙,ip防御。 应该有

怕误伤ip的内网用户,就用session 限制当个用户。
断d了l的d弦x 2018-11-11
  • 打赏
  • 举报
回复
第一步:拦截 你已经做了,有防火墙建议接入防火墙,拦截策略较多;第二步;对数据进行有效性验证,避免非法数据落地
JAVA-上帝之手 2018-11-07
  • 打赏
  • 举报
回复
引用 2 楼 sinat_31240689 的回复:
既然已经做到了redis判断ip访问,那再加一个redis的1小时或者一天内访问次数不就行了吗,超过次数就拒绝


如果操作的用户 是处于一个内网当中,当他违规操作,我封了他的ip,但是我拿到他的这个ip是公网的ip。那么和他同内网下的其他用户就不能使用了,,这个怎么怎么做呢
JAVA-上帝之手 2018-11-07
  • 打赏
  • 举报
回复
但是 还有一个问题,,那就是如果操作的用户 是处于一个内网当中,当他违规操作,我封了他的ip,但是我拿到他的这个ip是公网的ip。那么和他同内网下的其他用户就不能使用了,,这个怎么怎么做呢
老许要老婆么 2018-11-05
  • 打赏
  • 举报
回复
每一个正常的用户是多久提交一次数据? 1小时? 1天? 可以加一些判断,让ip地址这些比较容易获取的标识,1个小时最多提交1次数据。 如果超出次数,就直接忽略,然后返回给用户说是提交成功!
  • 打赏
  • 举报
回复
既然已经做到了redis判断ip访问,那再加一个redis的1小时或者一天内访问次数不就行了吗,超过次数就拒绝

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧