diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2022-09-20 12:34:04 +0200 |
---|---|---|
committer | Côme Chilliet <come.chilliet@nextcloud.com> | 2022-11-14 11:14:39 +0100 |
commit | 012576a3f4572d127917f039b2e423242b27136c (patch) | |
tree | 5f6104bfb944ab318560ce290fdb5dba7a71970f /lib/private | |
parent | 1eed8fd53999dd914d96fc8623e8cb43a153d427 (diff) | |
download | nextcloud-server-012576a3f4572d127917f039b2e423242b27136c.tar.gz nextcloud-server-012576a3f4572d127917f039b2e423242b27136c.zip |
Use new dependency to normalize IPs
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/Http/Client/LocalAddressChecker.php | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/private/Http/Client/LocalAddressChecker.php b/lib/private/Http/Client/LocalAddressChecker.php index 8c86cbabf07..ec73fe1c44e 100644 --- a/lib/private/Http/Client/LocalAddressChecker.php +++ b/lib/private/Http/Client/LocalAddressChecker.php @@ -25,6 +25,8 @@ declare(strict_types=1); */ namespace OC\Http\Client; +use IPLib\Factory; +use IPLib\ParseStringFlag; use OCP\Http\Client\LocalServerException; use Psr\Log\LoggerInterface; use OC\Http\IpUtils; @@ -37,6 +39,17 @@ class LocalAddressChecker { } public function ThrowIfLocalIp(string $ip) : void { + $parsedIp = Factory::parseAddressString( + $ip, + ParseStringFlag::IPV4_MAYBE_NON_DECIMAL | ParseStringFlag::IPV4ADDRESS_MAYBE_NON_QUAD_DOTTED + ); + if ($parsedIp === null) { + /* Not an IP */ + return; + } + /* Replace by normalized form */ + $ip = (string)$parsedIp; + $localRanges = [ '100.64.0.0/10', // See RFC 6598 '192.0.0.0/24', // See RFC 6890 |