若依安全加固,新手两大痛点:插件不会集成、配置总踩坑!今天一次性搞定——常用安全插件集成(直接复制配置)+ 10个高频配置误区,看完直接落地,不用瞎琢磨。
① 背景/问题引入
很多初中级Java开发者,做若依项目安全加固时,要么不知道该集成哪些安全插件,要么集成后配置出错;要么照搬加固清单,却踩了很多隐形误区。
插件集成不到位、配置踩坑,都会导致安全加固流于形式,上线后仍有被攻击的风险。今天整合两大核心需求,插件集成给可复制配置,配置误区给正确解法,新手也能轻松搞定。
② 核心原理讲解
1. 若依安全插件的核心作用:补充框架原生安全能力,覆盖SQL注入、XSS、接口加密、防暴破等高频安全需求,不用自己从零开发,集成后配置即可生效。
2. 插件集成+配置的核心原则:“选对插件+正确配置”,插件不用多,够用就好;配置不用复杂,精准避坑即可,重点是“可落地、不冗余”。
3. 新手踩坑核心原因:要么插件集成步骤出错、依赖缺失,要么配置时忽略细节(如密钥、环境、拦截范围),要么混淆开发/生产配置,导致插件失效或项目报错。
③ 关键代码示例(插件集成+配置误区,可直接复制)
分为两部分:常用安全插件集成(复制即生效)、10个高频配置误区(错误+正确),均适配若依普通版,注释清晰,新手无需额外修改。
### 第一部分:若依常用安全插件集成指南(直接复制配置)
精选4个必集成插件,覆盖核心安全需求,无需复杂开发,配置即生效。
#### 1. 核心依赖(pom.xml,复制到依赖节点)
com.ruoyi
ruoyi-xss
${ruoyi.version}
cn.hutool
hutool-crypto
5.8.20
com.github.xiaoymin
knife4j-spring-boot-starter
4.1.0
io.springfox
springfox-swagger2
com.ruoyi
ruoyi-log
${ruoyi.version}
#### 2. 插件核心配置(application-prod.yml,复制即生效)
# 1. XSS过滤插件配置(全局生效)
xss:
# 排除的接口(无需过滤的接口,按需添加)
excludeUrls: /login,/captchaImage
# 2. RSA加密插件配置(密码传输加密)
security:
rsa:
enabled: true # 生产强制开启
public-key: ${RSA_PUBLIC_KEY} # 2048位以上公钥
private-key: ${RSA_PRIVATE_KEY} # 对应私钥
expire: 300 # 密钥5分钟过期
# 3. 接口限流插件配置(防暴破,重点限制登录接口)
rate-limiter:
enabled: true
limit: 5 # 每分钟最多5次请求
timeout: 60 # 限流时间窗口(秒)
# 限流接口(重点防护登录)
urls: /login
# 4. 日志审计插件配置(操作日志留存)
ruoyi:
oper-log:
enable: true
store-days: 180 # 留存6个月以上
# 需记录日志的操作类型
business-types: INSERT,UPDATE,DELETE,EXPORT,IMPORT
#### 3. 插件启用代码(复制到对应配置类,无需修改)
// 1. XSS过滤插件启用(FilterConfig.java)
@Bean
public FilterRegistrationBean xssFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean<>();
registration.setFilter(new XssFilter());
registration.addUrlPatterns("/*"); // 全局拦截
registration.setName("xssFilter");
registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
return registration;
}
// 2. 接口限流插件启用(RateLimiterConfig.java,新建类复制)
@Configuration
public class RateLimiterConfig {
@Bean
public RateLimiterInterceptor rateLimiterInterceptor() {
return new RateLimiterInterceptor();
}
@Bean
public WebMvcConfigurer rateLimiterWebMvcConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(rateLimiterInterceptor())
.addPathPatterns("/login"); // 限流接口
}
};
}
}
### 第二部分:若依安全配置10个高频误区(错误+正确配置)
插件集成后,配置踩坑等于白做,这10个误区新手必看,每个都附正确配置,复制替换即可。
### 误区1:插件集成后不开启,等于白集成
# 错误配置(插件依赖添加了,但未开启)
security:
rsa:
enabled: false
rate-limiter:
enabled: false
# 正确配置(生产环境强制开启所有插件)
security:
rsa:
enabled: true
rate-limiter:
enabled: true
### 误区2:JWT密钥用默认值,易被破解(插件依赖密钥,必改)
# 错误配置(默认密钥,极易被攻击)
token:
secret: abcdefghijklmnopqrstuvwxyz
# 正确配置(32位随机密钥,推荐用环境变量)
token:
secret: ${JWT_SECRET}
expire: 7200 # 生产缩短至2小时
### 误区3:数据库密码硬编码,不外置
# 错误配置(密码写死,代码泄露即泄露密码)
spring:
datasource:
druid:
master:
username: root
password: 123456
# 正确配置(环境变量读取,禁止硬编码)
spring:
datasource:
druid:
master:
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
### 误区4:Redis不设密码,允许公网暴露(插件依赖Redis,必加固)
# 错误配置(无密码,公网可访问)
spring:
redis:
host: 123.xxx.xxx.xxx # 公网IP
password: ""
# 正确配置(设强密码,仅内网访问)
spring:
redis:
host: 127.0.0.1 # 内网IP
password: ${REDIS_PASSWORD}
### 误区5:Druid监控用默认账号密码,不限制IP
# 错误配置(默认账号ruoyi,密码123456,无IP限制)
spring:
druid:
stat-view-servlet:
login-username: ruoyi
login-password: 123456
allow: ""
# 正确配置(改账号密码,仅内网IP访问)
spring:
druid:
stat-view-servlet:
login-username: druid_admin
login-password: ${DRUID_PASSWORD}
allow: 127.0.0.1,172.xx.xx.0/24
### 误区6:XSS过滤配置错误,未拦截所有接口
# 错误配置(未拦截所有接口,或排除过多)
xss:
excludeUrls: /* # 错误:排除所有接口,等于未开启
# 正确配置(仅排除必要接口)
xss:
excludeUrls: /login,/captchaImage
### 误区7:SQL注入防护不到位,用${}拼接
# 错误配置(Mapper.xml中用${},易被注入)
AND user_name = '${userName}'
# 正确配置(用#{}}预编译,彻底避免注入)
AND user_name = #{userName}
### 误区8:文件上传不限制类型/大小,易传木马
# 错误配置(无限制,可上传危险文件)
ruoyi:
file:
allow-types: "*"
max-size: 104857600
# 正确配置(限制类型和大小,非Web目录存储)
ruoyi:
profile: /data/ruoyi/upload
file:
allow-types: jpg,png,gif,bmp,jpeg,doc,xls,xlsx,ppt,txt,pdf
max-size: 10485760 # 10MB
### 误区9:登录不设防暴破,限流插件白集成
# 错误配置(限流插件开启,但未配置登录拦截)
rate-limiter:
urls: /test # 错误:未拦截登录接口
# 正确配置(重点拦截登录接口)
rate-limiter:
urls: /login
limit: 5 # 每分钟最多5次请求
### 误区10:不切换生产环境,插件配置无效
# 错误配置(用dev环境,插件未生效)
spring:
profiles:
active: dev
# 正确配置(强制切换prod,插件正常生效)
spring:
profiles:
active: prod
以上插件集成配置可直接复制,10个误区覆盖所有核心场景,新手不用动脑,照搬就能完成安全加固,避免插件失效、配置踩坑。
④ 常见误区/易混淆点(重点强调,避免重复踩雷)
误区1:觉得“集成插件就够了,配置不用改”。插件只是工具,正确配置才是关键,比如限流插件不配置拦截接口、RSA插件不开启,等于白集成。
误区2:插件依赖冲突,盲目添加依赖。若依部分版本已集成XSS、日志插件,先检查pom.xml,避免重复添加,导致项目启动失败。
⑤ 总结一句话记忆
若依安全:插件集成抄配置,10个误区全避开,开插件、改密钥、限访问,上线安全零踩雷。




