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