问题描述
- servlet防止IP上传攻击java
- 同一ip 地址(5分钟内,连续 上传 超过 10 次,就让他 等 5分钟再上传)有朋友能提供下代码,
或者思路吗?
解决方案
servlet 过滤器中做业务处理,判断他上传的次数,你可以做个上传的变量记录ip和对应的上传记录,以及上传的时间。
判断第一次上传后最好一次上传的间隔时间以及次数,如果不满足则调到一个提示页面上传过多。这个代码也没什么的,看看过滤器在这里做处理就好。
解决方案二:
一般这样的需求很少,防止上传攻击可以加上传文件限制和验证码
你说的这个,每次上传记一下,然后每次上传检查一下是否超过限制
解决方案三:
request里面remoteAddr,但是这个地址可能是不准确的,可能是链路中的设备的地址并非终端的ip,获取终端ip的方式是有几种的(可以百度下),还有读取x-forwarded-for,
但是实际上没有哪种方式能够完全准确得到终端的ip。
遇到过类似的情况,都是在请求中加一个业务相关的标识,例如用户名/会话id之类的,使用这个标识进行判断和次数限制,比ip地址准确。
时间: 2024-10-14 03:32:07