aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private
diff options
context:
space:
mode:
authorDaniel Kesselberg <mail@danielkesselberg.de>2024-09-30 13:05:19 +0200
committerDaniel Kesselberg <mail@danielkesselberg.de>2024-10-01 18:00:47 +0200
commit6be00432b75a80a246246883c5fa955ce803f3d8 (patch)
treececf063b90e346811aad05863a6ce5c5badcdddc /lib/private
parent870816466f2d1adaf956a83491c0645556b0d02b (diff)
downloadnextcloud-server-6be00432b75a80a246246883c5fa955ce803f3d8.tar.gz
nextcloud-server-6be00432b75a80a246246883c5fa955ce803f3d8.zip
chore: always execute parse_url in preventLocalAddressbug/noid/federated-addressbook-sync-without-localaddressallowed
This change should make it easier to spot wrong uses of the HTTP client on development setups where allow_local_remote_servers is usually true. Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Diffstat (limited to 'lib/private')
-rw-r--r--lib/private/Http/Client/Client.php9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/private/Http/Client/Client.php b/lib/private/Http/Client/Client.php
index 40ce012cd1a..62209ff9040 100644
--- a/lib/private/Http/Client/Client.php
+++ b/lib/private/Http/Client/Client.php
@@ -158,14 +158,15 @@ class Client implements IClient {
}
protected function preventLocalAddress(string $uri, array $options): void {
- if ($this->isLocalAddressAllowed($options)) {
- return;
- }
-
$host = parse_url($uri, PHP_URL_HOST);
if ($host === false || $host === null) {
throw new LocalServerException('Could not detect any host');
}
+
+ if ($this->isLocalAddressAllowed($options)) {
+ return;
+ }
+
if (!$this->remoteHostValidator->isValid($host)) {
throw new LocalServerException('Host "' . $host . '" violates local access rules');
}