Spring 应用安全相关解决方案
以下内容方案仅限于使用spring生态框架进行开发的web应用, 包括spring mvc 、spring-boot、spring-gateway等
会话安全
在一个完整的系统中, 会话是不可或缺的一个环节, 但是会话安全隐患也是每个系统会存在的内容
锁定用户方案
- 根据用户上次登录时间做为介质, 判断长时间未使用过系统的用户,例如1-3个月,超过这个时间则锁定用户
用户会话保持设置方案
数据防护
在请求系统对外交互过程中, 会向系统获取数据, 提交数据, 而数据内容的安全性是否符合要求也非常重要, 包括数据的隐私性, 合法性等
数据加密、解密、防篡改、重放
访问请求控制、限流
XSS 防护、SQL注入
服务器安全配置
Host头攻击
很多场景下,开发者都相信HTTP Host header传递的参数值用来更新链接导出脚本或者一些敏感操作。但该参数是可控的,若没有对其进行处理,就有可能造成恶意代码的传入。修复建议:使用SERVER_NAME代替host header。
- 方案: 配置
nginx.conf过滤信息, 配置只允许访问当前nginx服务的地址
1 | if ($host !~* ^localhost|xxx.xx.xx:8888$) |
- 检查
curl --header "Host:localhost:3030"-X GET http://localhost:3030/
目标HTTP安全响应头缺失
X-Content-Type-Options响应头的缺失使得目标URL更易遭受跨站脚本攻击。修复建议:将您的服务器配置为在所有传出请求上发送值为“nosniff”的“X-Content-Type-Options”头。
- 方案: 增加请求头设置,
ngxin.conf配置加固
1 | #标准加固 |