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-09-20 12:34:04 +0200 |
commit | 7ac688a2e5c74c890417f25683afc5c0a9a1e000 (patch) | |
tree | 2fac2351a9d3672d7d8ee6516987c8d658ad92a2 | |
parent | 6b876bb0c3f04b413af4e71ae700c6b92ba8ea28 (diff) | |
download | nextcloud-server-7ac688a2e5c74c890417f25683afc5c0a9a1e000.tar.gz nextcloud-server-7ac688a2e5c74c890417f25683afc5c0a9a1e000.zip |
Use new dependency to normalize IPs
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
-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 b0de54b430f..274186d0a5a 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 Symfony\Component\HttpFoundation\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 |