fix(adtracking): 修复生产网关反代路由、成交态统计口径与安全加固

This commit is contained in:
yml2213
2026-09-10 11:17:40 +08:00
parent 2b11d70ebe
commit 6a3611c1a8
10 changed files with 140 additions and 28 deletions
@@ -33,7 +33,9 @@ func (h *Handler) Redirect(c *gin.Context) {
visitorID, err := c.Cookie("hfb_v_id")
if err != nil || visitorID == "" {
visitorID = generateVisitorID()
c.SetCookie("hfb_v_id", visitorID, 31536000, "/", "", false, false)
isSecure := c.Request.TLS != nil || c.Request.Header.Get("X-Forwarded-Proto") == "https"
c.SetSameSite(http.SameSiteLaxMode)
c.SetCookie("hfb_v_id", visitorID, 31536000, "/", "", isSecure, true)
}
ip := c.ClientIP()
@@ -195,7 +197,7 @@ func writeAdTrackingError(c *gin.Context, err error) {
response.Error(c, http.StatusNotFound, "not_found", err.Error())
case errors.Is(err, ErrCodeAlreadyExists):
response.Error(c, http.StatusConflict, "already_exists", err.Error())
case errors.Is(err, ErrInvalidCodeFormat), errors.Is(err, ErrReservedCode), errors.Is(err, ErrLinkDisabled):
case errors.Is(err, ErrInvalidCodeFormat), errors.Is(err, ErrReservedCode), errors.Is(err, ErrLinkDisabled), errors.Is(err, ErrDisallowedTargetDomain):
response.BadRequest(c, err.Error())
default:
response.InternalServerError(c, err.Error())