瀏覽代碼

Update FederationController

Daniel Supernault 6 年之前
父節點
當前提交
bca53ae40e
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      app/Http/Controllers/FederationController.php

+ 7 - 0
app/Http/Controllers/FederationController.php

@@ -242,9 +242,16 @@ XML;
     protected function blindKeyRotation(Request $request, Profile $profile)
     protected function blindKeyRotation(Request $request, Profile $profile)
     {
     {
         $signature = $request->header('signature');
         $signature = $request->header('signature');
+        $date = $request->header('date');
         if(!$signature) {
         if(!$signature) {
             abort(400, 'Missing signature header');
             abort(400, 'Missing signature header');
         }
         }
+        if(!$date) {
+            abort(400, 'Missing date header');
+        }
+        if(!now()->parse($date)->gt(now()->subDays(1)) || !now()->parse($date)->lt(now()->addDays(1))) {
+            abort(400, 'Invalid date');
+        }
         $signatureData = HttpSignature::parseSignatureHeader($signature);
         $signatureData = HttpSignature::parseSignatureHeader($signature);
         $keyId = Helpers::validateUrl($signatureData['keyId']);
         $keyId = Helpers::validateUrl($signatureData['keyId']);
         $actor = Profile::whereKeyId($keyId)->whereNotNull('remote_url')->firstOrFail();
         $actor = Profile::whereKeyId($keyId)->whereNotNull('remote_url')->firstOrFail();