1. 系统与软件基础安全
保持Debian系统及Swagger相关软件(如Spring Boot、springdoc-openapi)为最新稳定版本,定期执行sudo apt update && sudo apt upgrade修复已知漏洞;从官方或可信镜像源安装软件,避免使用未经验证的第三方资源,降低供应链攻击风险。
2. 访问控制与身份验证
application.properties或application.yml)设置springfox.documentation.enabled=false,避免生产环境暴露API文档。/swagger-ui/**、/v3/api-docs/**)添加认证机制,如Basic认证(弹出登录窗口)、OAuth2或JWT。示例配置(Spring Security):@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(auth -> auth
.requestMatchers("/swagger-ui/**", "/v3/api-docs/**").authenticated() // Swagger路径需认证
.anyRequest().permitAll() // 其他接口放行(根据需求调整)
).httpBasic(); // 启用Basic认证
return http.build();
}
}
ufw)或Spring Security配置,仅允许指定IP地址访问Swagger UI,例如ufw allow from 192.168.1.0/24 to any port 8080。3. 数据传输加密
强制使用HTTPS协议(SSL/TLS)加密Swagger与客户端之间的数据传输,防止信息被窃听或篡改。可通过Let’s Encrypt获取免费证书,使用certbot工具快速部署:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
配置完成后,Swagger UI将自动跳转至HTTPS链接。
4. 安全审计与监控
Logwatch、Fail2ban等工具实时监控系统日志,分析异常访问行为(如频繁的未授权尝试);通过auditd记录Swagger相关操作的详细信息,便于事后追溯。Burp Suite、Swagger-exp等工具扫描Swagger配置及API接口,发现潜在漏洞(如参数注入、未授权访问)并及时修复。5. 权限与配置管理
root账户操作,通过sudo提升临时权限。<、>),防范参数注入攻击;使用安全工具生成文档,避免文档中包含恶意代码。6. 辅助工具与最佳实践
@Profile注解,区分开发/测试环境(启用Swagger+认证)与生产环境(禁用Swagger),例如:@Profile({"dev", "test"})
@Configuration
public class SwaggerDevConfig { /* Swagger配置 */ }
@NotNull、@Size注解),防止恶意用户通过篡改参数进行未授权操作。