1. 环境隔离:生产环境禁用Swagger
在生产环境中彻底禁用Swagger功能,避免API接口细节、敏感参数等信息暴露给未授权用户。可通过框架配置实现,例如Spring Boot项目中,在application.properties中添加springfox.documentation.enabled=false,或在application.yml中设置springfox.documentation.enabled: false;也可使用Spring Profile限定Swagger仅在开发/测试环境启用(如@Profile({"dev", "test"}))。
2. 访问控制:精准限制访问权限
/swagger-ui/**),拦截外部非法请求。securitySchemes定义Basic Auth,在securityContexts中应用该认证;或使用Spring Security配置角色权限(如antMatchers("/swagger-ui/**").hasRole("ADMIN"))。3. 数据传输安全:强制使用HTTPS
配置SSL证书实现HTTPS加密,防止数据传输过程中被窃听或篡改。可通过Ubuntu的certbot工具申请免费Let’s Encrypt证书,配置Nginx或Apache反向代理时启用HTTPS,确保Swagger UI和API接口均通过https://协议访问。
4. 系统基础安全:强化Ubuntu环境
sudo apt update && sudo apt upgrade更新系统和软件包,修复已知安全漏洞;使用sudo apt full-upgrade包含内核在内的完整更新。/etc/ssh/sshd_config中的PermitRootLogin no),使用SSH密钥对替代密码登录(配置PubkeyAuthentication yes),并修改SSH默认端口(如改为2222)。chmod 600限制仅所有者可读写);避免使用root账户运行Swagger应用,改用普通用户+sudo提升权限。5. 敏感信息保护:避免信息泄露
application.properties中使用${DB_PASSWORD}引用环境变量)。6. 安全审计与监控:及时发现异常
/swagger-ui/**路径的访问日志),使用Logwatch或fail2ban分析日志,识别异常访问行为(如高频访问、非法IP尝试)。npm audit检查前端依赖漏洞,通过OWASP Dependency-Check检查Java依赖漏洞)。