Add UriInterface-enabled isUriBlocked method in Util\Network
This commit is contained in:
parent
a574146f04
commit
a907d6c87b
|
@ -29,6 +29,7 @@ use Friendica\Network\HTTPClient\Client\HttpClientAccept;
|
||||||
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
|
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
|
||||||
use Friendica\Network\HTTPException\NotModifiedException;
|
use Friendica\Network\HTTPException\NotModifiedException;
|
||||||
use GuzzleHttp\Psr7\Uri;
|
use GuzzleHttp\Psr7\Uri;
|
||||||
|
use Psr\Http\Message\UriInterface;
|
||||||
|
|
||||||
class Network
|
class Network
|
||||||
{
|
{
|
||||||
|
@ -177,11 +178,28 @@ class Network
|
||||||
* @param string $url The url to check the domain from
|
* @param string $url The url to check the domain from
|
||||||
*
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
|
*
|
||||||
|
* @deprecated since 2023.03 Use isUriBlocked instead
|
||||||
*/
|
*/
|
||||||
public static function isUrlBlocked(string $url): bool
|
public static function isUrlBlocked(string $url): bool
|
||||||
{
|
{
|
||||||
$host = @parse_url($url, PHP_URL_HOST);
|
try {
|
||||||
if (!$host) {
|
return self::isUriBlocked(new Uri($url));
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
Logger::warning('Invalid URL', ['url' => $url]);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the provided URI domain is on the domain blocklist.
|
||||||
|
*
|
||||||
|
* @param UriInterface $uri
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static function isUriBlocked(UriInterface $uri): bool
|
||||||
|
{
|
||||||
|
if (!$uri->getHost()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,7 +209,7 @@ class Network
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($domain_blocklist as $domain_block) {
|
foreach ($domain_blocklist as $domain_block) {
|
||||||
if (fnmatch(strtolower($domain_block['domain']), strtolower($host))) {
|
if (fnmatch(strtolower($domain_block['domain']), strtolower($uri->getHost()))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue