]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/Network.php
Fix IHTTPResult::getHeader()
[friendica.git] / src / Util / Network.php
index 6694fd4f0c057f3fad686824233334457bf5957a..0b10687c9d5a64f3a5e8ceef166d04002cec7293 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -177,6 +177,35 @@ class Network
                return false;
        }
 
+       /**
+        * Checks if the provided url is on the list of domains where redirects are blocked.
+        * Returns true if it is or malformed URL, false if not.
+        *
+        * @param string $url The url to check the domain from
+        *
+        * @return boolean
+        */
+       public static function isRedirectBlocked(string $url)
+       {
+               $host = @parse_url($url, PHP_URL_HOST);
+               if (!$host) {
+                       return false;
+               }
+
+               $no_redirect_list = DI::config()->get('system', 'no_redirect_list', []);
+               if (!$no_redirect_list) {
+                       return false;
+               }
+
+               foreach ($no_redirect_list as $no_redirect) {
+                       if (fnmatch(strtolower($no_redirect), strtolower($host))) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
        /**
         * Check if email address is allowed to register here.
         *
@@ -519,4 +548,15 @@ class Network
                        exit;
                }
        }
+
+       /**
+        * Check if the given URL is a local link
+        *
+        * @param string $url 
+        * @return bool 
+        */
+       public static function isLocalLink(string $url)
+       {
+               return (strpos(Strings::normaliseLink($url), Strings::normaliseLink(DI::baseUrl())) !== false);
+       }
 }