fix: validate upload callback secret

pull/3497/head
Honahec 2 weeks ago
parent aa78c4ce09
commit 2dea2b1956
No known key found for this signature in database

@ -1,6 +1,7 @@
package middleware
import (
"crypto/subtle"
"net/http"
"github.com/cloudreve/Cloudreve/v4/application/dependency"
@ -204,6 +205,13 @@ func uploadCallbackCheck(c *gin.Context, policyType types.PolicyType) error {
}
callbackSession := callbackSessionRaw.(fs.UploadSession)
if subtle.ConstantTimeCompare(
[]byte(callbackSession.CallbackSecret),
[]byte(c.Param("key")),
) != 1 {
return serializer.NewError(serializer.CodeCredentialInvalid, "Invalid callback secret", nil)
}
c.Set(manager.UploadSessionCtx, &callbackSession)
if callbackSession.Policy.Type != string(policyType) {
return serializer.NewError(serializer.CodePolicyNotAllowed, "", nil)

Loading…
Cancel
Save