Browse Source

Fix path before signature check

DarthSim 2 years ago
parent
commit
0dc16ba76b
2 changed files with 4 additions and 8 deletions
  1. 1 1
      CHANGELOG.md
  2. 3 7
      processing_handler.go

+ 1 - 1
CHANGELOG.md

@@ -6,7 +6,7 @@
 - (pro) Add encrypted source URL support.
 
 ### Changed
-- Fix some invalid signature cases that happen because of URL normalization.
+- Try to fix some invalid source URL cases that happen because of URL normalization.
 
 ## [3.7.2] - 2022-08-22
 ### Changed

+ 3 - 7
processing_handler.go

@@ -217,14 +217,10 @@ func handleProcessing(reqID string, rw http.ResponseWriter, r *http.Request) {
 		))
 	}
 
-	if err := security.VerifySignature(signature, path); err != nil {
-		// Some proxy servers may normalize URL and make signature invalid.
-		// Try to fix the path and repeat the check
-		path = fixPath(path)
+	path = fixPath(path)
 
-		if err = security.VerifySignature(signature, path); err != nil {
-			sendErrAndPanic(ctx, "security", ierrors.New(403, err.Error(), "Forbidden"))
-		}
+	if err := security.VerifySignature(signature, path); err != nil {
+		sendErrAndPanic(ctx, "security", ierrors.New(403, err.Error(), "Forbidden"))
 	}
 
 	po, imageURL, err := options.ParsePath(path, r.Header)