소스 검색

Update FederationController

Daniel Supernault 6 년 전
부모
커밋
da28b13545
1개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      app/Http/Controllers/FederationController.php

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

@@ -199,9 +199,16 @@ XML;
         $body = $request->getContent();
         $body = $request->getContent();
         $bodyDecoded = json_decode($body, true, 8);
         $bodyDecoded = json_decode($body, true, 8);
         $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']);
         $id = Helpers::validateUrl($bodyDecoded['id']);
         $id = Helpers::validateUrl($bodyDecoded['id']);