Browse Source

[Web] use SEC_FETCH_DEST header instead of Referer to block api requests

FreddleSpl0it 1 year ago
parent
commit
3aee2b6cf5
1 changed files with 4 additions and 6 deletions
  1. 4 6
      data/web/json_api.php

+ 4 - 6
data/web/json_api.php

@@ -47,12 +47,10 @@ function api_log($_data) {
   }
 }
 
-// deny requests from /SOGo locations
-if (isset($_SERVER['HTTP_REFERER'])) {
-  if (strpos(strtolower($_SERVER['HTTP_REFERER']), '/sogo') !== false) {
-    header('HTTP/1.1 403 Forbidden');
-    exit;
-  }
+// Block requests not intended for direct API use by checking the 'Sec-Fetch-Dest' header.
+if (isset($_SERVER['HTTP_SEC_FETCH_DEST']) && $_SERVER['HTTP_SEC_FETCH_DEST'] !== 'empty') {
+  header('HTTP/1.1 403 Forbidden');
+  exit;
 }
 
 if (isset($_GET['query'])) {