腾讯+开发工程师+(三面)面经
面试官问了一个关于项目安全性的问题:“你对Spring Boot等框架比较熟悉,那你的项目的安全性是如何保证的呢?”当时我有些措手不及,不太清楚面试官的意图。
- 鉴权和认证:我们使用Spring Security和JWT进行身份验证和权限管理,确保每个请求的合法性。例如,通过微信公众号鉴权和三方扫码登录来实现用户登录。
- 数据加密:所有数据传输都通过HTTPS协议,同时对敏感数据进行AES加密存储,确保数据在传输和存储过程中的安全性。
- 防止SQL注入:通过参数校验和使用ORM框架(如JPA或MyBatis),避免直接拼接SQL语句,从而防止SQL注入攻击。
- CORS跨域配置:配置了HTTP安全头,防止常见的Web攻击,如XSS和点击劫持。具体配置包括X-Content-Type-Options、X-Frame-Options和X-XSS-Protection。
- 系统监控:使用Prometheus进行系统监控和报警,实时了解系统运行状态,及时发现和解决安全隐患。
- 依赖漏洞扫描:在项目中引入OWASP Dependency-Check工具,扫描项目中的依赖库,及时发现并修复已知的安全漏洞。
- 代码审计和渗透测试:进行代码审查和使用第三方工具进行渗透测试,发现和修复系统中的潜在安全问题。