Skip to content

go.gin.request_validation

Correctness High

Detects Gin handlers without request validation.

Missing request validation:

  • Invalid data — Malformed input causes errors
  • Security risks — Unvalidated input enables attacks
  • Poor UX — Users get cryptic errors
// ❌ Before (no validation)
func CreateUser(c *gin.Context) {
var user User
c.BindJSON(&user) // No error handling!
// process user...
}
// ✅ After (with validation)
type CreateUserRequest struct {
Name string `json:"name" binding:"required,min=1,max=100"`
Email string `json:"email" binding:"required,email"`
}
func CreateUser(c *gin.Context) {
var req CreateUserRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"error": err.Error(),
})
return
}
// process validated request...
}
  • BindJSON without error handling
  • Missing struct validation tags
  • Handlers without request binding

Unfault can add proper ShouldBind patterns with error handling.