Ver código fonte

Update AP helpers, reject statuses with invalid dates

Daniel Supernault 8 meses atrás
pai
commit
960f3849f2
1 arquivos alterados com 19 adições e 0 exclusões
  1. 19 0
      app/Util/ActivityPub/Helpers.php

+ 19 - 0
app/Util/ActivityPub/Helpers.php

@@ -298,6 +298,21 @@ class Helpers
         return null;
     }
 
+    public static function validateTimestamp($timestamp)
+    {
+        try {
+            $date = Carbon::parse($timestamp);
+            $now = Carbon::now();
+            $tenYearsAgo = $now->copy()->subYears(10);
+            $isMoreThanTenYearsOld = $date->lt($tenYearsAgo);
+            $tomorrow = $now->copy()->addDay();
+            $isMoreThanOneDayFuture = $date->gt($tomorrow);
+            return !($isMoreThanTenYearsOld || $isMoreThanOneDayFuture);
+        } catch (\Exception $e) {
+            return false;
+        }
+    }
+
     public static function statusFirstOrFetch($url, $replyTo = false)
     {
         $url = self::validateUrl($url);
@@ -329,6 +344,10 @@ class Helpers
             return;
         }
 
+        if(!self::validateTimestamp($res['published'])) {
+            return;
+        }
+
         if (config('autospam.live_filters.enabled')) {
             $filters = config('autospam.live_filters.filters');
             if (! empty($filters) && isset($res['content']) && ! empty($res['content']) && strlen($filters) > 3) {