💡
原文中文,约2400字,阅读约需6分钟。
📝
内容提要
今年1月,CopperKoi与我重做了协会的招新系统,前端使用Vite,后端使用Golang和gin。在开发过程中遇到CSRF防护和密码传输问题,最终通过HTTPS保障明文密码安全。公测时发现接口参数校验问题并解决。代码部署后发现JWT安全漏洞,需改进。
🎯
关键要点
-
今年1月,CopperKoi与我重做了协会的招新系统,前端使用Vite,后端使用Golang和gin。
-
开发过程中遇到CSRF防护和密码传输问题,最终通过HTTPS保障明文密码安全。
-
公测时发现接口参数校验问题,需使用指针或自定义类型来处理布尔值。
-
GORM的默认主键自增从0开始,可能导致鉴权中间件问题,但使用UUID主键可以避免。
-
在公测前将JWT的secret从代码中提取到环境变量中,但因加载顺序问题导致安全漏洞。
-
攻击者可通过空密钥伪造JWT,直接接管受保护接口,需将secret硬编码以修复漏洞。
❓
延伸问答
招新系统的前端和后端分别使用了什么技术?
前端使用了Vite,后端使用了Golang和gin。
在开发过程中遇到了哪些安全问题?
遇到了CSRF防护和密码传输问题,以及JWT安全漏洞。
如何保障密码传输的安全?
通过HTTPS保障明文密码的安全。
公测时发现了什么接口参数校验问题?
发现需要使用指针或自定义类型来处理布尔值。
GORM的默认主键自增从多少开始?
GORM的默认主键自增从0开始。
如何修复JWT的安全漏洞?
将JWT的secret硬编码在代码里以修复漏洞。
➡️