chore: update auth security

This commit is contained in:
duorameng
2026-04-27 14:14:36 +08:00
parent cf9acf3ea0
commit 5a8baf7a0b
4 changed files with 22 additions and 15 deletions
+1
View File
@@ -404,6 +404,7 @@ func (c *AgentController) WSConnect(ctx *gin.Context) {
logger.Errorf("[AgentWS] 升级连接失败: %v, Agent #%s, IP=%s", err, agent.ID, ip) logger.Errorf("[AgentWS] 升级连接失败: %v, Agent #%s, IP=%s", err, agent.ID, ip)
return return
} }
conn.SetReadLimit(constant.MaxMessageSize)
// 连接成功,重置失败计数 // 连接成功,重置失败计数
c.wsManager.RecordConnectSuccess(ip) c.wsManager.RecordConnectSuccess(ip)
+15 -13
View File
@@ -181,19 +181,21 @@ func (ac *AuthController) GetCurrentUser(c *gin.Context) {
} }
func (ac *AuthController) Register(c *gin.Context) { func (ac *AuthController) Register(c *gin.Context) {
var req struct { /*
Username string `json:"username" binding:"required"` var req struct {
Email string `json:"email" binding:"required"` Username string `json:"username" binding:"required"`
Password string `json:"password" binding:"required"` Email string `json:"email" binding:"required"`
} Password string `json:"password" binding:"required"`
}
if err := c.ShouldBindJSON(&req); err != nil { if err := c.ShouldBindJSON(&req); err != nil {
utils.BadRequest(c, err.Error()) utils.BadRequest(c, err.Error())
return return
} }
// 安全性:强制设定角色为 user,防止注册时篡改角色为 admin // 安全性:强制设定角色为 user,防止注册时篡改角色为 admin
// 修复原代码中 email 和 password 参数位置颠倒的问题 user := ac.userService.CreateUser(req.Username, req.Password, req.Email, constant.DefaultRole)
user := ac.userService.CreateUser(req.Username, req.Password, req.Email, constant.DefaultRole) utils.Success(c, vo.ToUserVO(user))
utils.Success(c, vo.ToUserVO(user)) */
utils.BadRequest(c, "注册功能已关闭")
} }
+5 -1
View File
@@ -27,7 +27,11 @@ func AuthRequired() gin.HandlerFunc {
origin = c.GetHeader("Referer") origin = c.GetHeader("Referer")
} }
// 如果有 Origin 且不匹配则拒绝(实际部署时应配置允许的 Origin) // 如果有 Origin 且不匹配则拒绝(实际部署时应配置允许的 Origin)
// 这里由于是通用逻辑,暂且记录日志或做更严谨的校验 if origin != "" && !utils.CheckWSOrigin(c.Writer, c.Request) {
utils.Forbidden(c, "CSRF 校验失败: 非法的请求来源")
c.Abort()
return
}
} }
token, err := c.Cookie(constant.CookieName) token, err := c.Cookie(constant.CookieName)
+1 -1
View File
@@ -18,7 +18,7 @@ func initPublicAPIRoutes(api *gin.RouterGroup, c *Controllers) {
{ {
auth.POST("/login", c.Auth.Login) auth.POST("/login", c.Auth.Login)
auth.POST("/logout", c.Auth.Logout) auth.POST("/logout", c.Auth.Logout)
auth.POST("/register", c.Auth.Register) // auth.POST("/register", c.Auth.Register)
} }
// 公开的站点设置(无需认证) // 公开的站点设置(无需认证)