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)
|
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)
|
||||||
|
|||||||
@@ -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, "注册功能已关闭")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 公开的站点设置(无需认证)
|
// 公开的站点设置(无需认证)
|
||||||
|
|||||||
Reference in New Issue
Block a user