我想防止DDOS攻击我的spring 2web应用程序,我遇到了框架bucket4j (桶4j-github)。我的应用程序将在heroku上运行,在那里他们建议这样做(Heroku-Link)
到目前一切尚好。我现在正在尝试实现bucket4j,我希望在那之后,如果我非常快和频繁地按F5,会发生一些事情,会发生错误或类似的事情。但是,如果没有bucket4j框架,它的行为就像它一样,请求都得到了响应。
我的目标是限制ip的速率。目前我只是尝试从本地主机。
到目前为止我所拥有的是:
pom.xml
<dependency>
<groupId>com.giffing.bucket4j.spring.boot.starter</groupId>
<artifactId>bucket4j-spring-boot-starter</artifactId>
<version>0.1.15</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
<dependency><!-- Somehow I needed that since bucket4j-->
<groupId>javax.interceptor</groupId>
<artifactId>javax.interceptor-api</artifactId>
<version>1.2.2</version>
</dependency>application.properties
# CACHE
spring.cache.jcache.config=classpath:ehcache.xml
# RATE LIMIT
bucket4j.enabled=true
bucket4j.filters[0].cache-name=buckets
bucket4j.filters[0].filter-method=servlet
bucket4j.filters[0].url=/*
bucket4j.filters[0].rate-limits[0].bandwidths[0].capacity=10
bucket4j.filters[0].rate-limits[0].bandwidths[0].time=1
bucket4j.filters[0].rate-limits[0].bandwidths[0].unit=minutes
bucket4j.filters[0].rate-limits[0].expression=getRemoteAddress()
bucket4j.filters[0].rate-limits[0].bandwidths[0].fixed-refill-interval=0
bucket4j.filters[0].rate-limits[0].bandwidths[0].fixed-refill-interval-unit=minutesehcache.xml
<config ... >
<cache alias="buckets">
<expiry><ttl unit="seconds">3600</ttl></expiry>
<heap unit="entries">1000000</heap>
</cache>
</config>我错过了什么,或者我没有意识到框架的存在?谢谢你的暗示。
发布于 2019-05-19 15:43:26
我认为您需要将这一行更改为:
bucket4j.filters[0].url = .*祝好运!
发布于 2019-07-27 20:44:49
在我的Spring配置中添加@EnableCaching并使用bucket4j.filters[0].url=.*就足以解决这个问题。
发布于 2020-03-09 11:09:45
确保maven正在导入依赖项。在pom.xml中添加版本号为我解决了这个问题:
<dependency>
<groupId>com.giffing.bucket4j.spring.boot.starter</groupId>
<artifactId>bucket4j-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>由于没有在pom.xml中添加版本号,maven没有导入依赖项。没有显示错误,但速率限制不起作用。
https://stackoverflow.com/questions/55890748
复制相似问题