Catch exceptions in Model\Gserver::cleanURL

- Address https://github.com/friendica/friendica/issues/11992#issuecomment-1354393419
This commit is contained in:
Hypolite Petovan 2022-12-16 10:15:43 -05:00
parent f37750d679
commit c60464a4be

View File

@ -314,25 +314,20 @@ class GServer
/**
* Remove unwanted content from the given URL
*
* @param string $url
* @param string $dirtyUrl
*
* @return string cleaned URL
* @throws Exception
*/
public static function cleanURL(string $url): string
public static function cleanURL(string $dirtyUrl): string
{
$url = trim($url, '/');
$url = str_replace('/index.php', '', $url);
$urlparts = parse_url($url);
if (empty($urlparts)) {
try {
$url = str_replace('/index.php', '', trim($dirtyUrl, '/'));
return (string)(new Uri($url))->withUserInfo('')->withQuery('')->withFragment('');
} catch (\Throwable $e) {
Logger::warning('Invalid URL', ['dirtyUrl' => $dirtyUrl, 'url' => $url]);
return '';
}
unset($urlparts['user']);
unset($urlparts['pass']);
unset($urlparts['query']);
unset($urlparts['fragment']);
return (string)Uri::fromParts($urlparts);
}
/**