diff --git a/src/BirdsiteLive.Domain/UserService.cs b/src/BirdsiteLive.Domain/UserService.cs index 1e6e8dc..f1ccc13 100644 --- a/src/BirdsiteLive.Domain/UserService.cs +++ b/src/BirdsiteLive.Domain/UserService.cs @@ -164,6 +164,14 @@ namespace BirdsiteLive.Domain private async Task ValidateSignature(string actor, string rawSig, string method, string path, string queryString, Dictionary requestHeaders) { + //Check Date Validity + var date = requestHeaders["date"]; + var d = DateTime.Parse(date).ToUniversalTime(); + var now = DateTime.UtcNow; + var delta = Math.Abs((d - now).TotalSeconds); + if (delta > 30) return new SignatureValidationResult { SignatureIsValidated = false }; + + //Check Signature var signatures = rawSig.Split(','); var signature_header = new Dictionary(); foreach (var signature in signatures)