fix(billing): validate quantity parameters and harden quota calculations

Bound user-supplied count/duration parameters at request validation,
route ratio multipliers through guarded setters, and use saturating
int conversions in all quota math paths.
This commit is contained in:
CaIon
2026-07-07 00:21:06 +08:00
parent 45f0484dc1
commit d0bd8aac74
17 changed files with 293 additions and 19 deletions
+3 -1
View File
@@ -456,8 +456,10 @@ func (a *TaskAdaptor) EstimateBilling(c *gin.Context, info *relaycommon.RelayInf
return nil
}
// metadata can override Duration past standard request validation;
// cap it because it is used as a billing multiplier.
otherRatios := map[string]float64{
"seconds": float64(aliReq.Parameters.Duration),
"seconds": float64(min(aliReq.Parameters.Duration, relaycommon.MaxTaskDurationSeconds)),
}
ratios, err := ProcessAliOtherRatios(aliReq)
if err != nil {