From 8f2a2fdc3779f60413bf360e629dc63777677d2e Mon Sep 17 00:00:00 2001 From: Remco Date: Mon, 19 Jan 2026 22:19:41 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=86=99=20More=20fixes=20=F0=9F=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Middleware/LogViewerMiddleware.php | 2 +- .../Middleware/RealClientIpMiddleware.php | 18 ++++++++--------- .../Http/Middleware/VPNCheckerMiddleware.php | 20 ++++++++++++++++--- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Updated_Cms/app/Http/Middleware/LogViewerMiddleware.php b/Updated_Cms/app/Http/Middleware/LogViewerMiddleware.php index 0b51abc62d..fa50715fa2 100644 --- a/Updated_Cms/app/Http/Middleware/LogViewerMiddleware.php +++ b/Updated_Cms/app/Http/Middleware/LogViewerMiddleware.php @@ -15,7 +15,7 @@ class LogViewerMiddleware return to_route('login'); } - if (hasPermission('view_server_logs') === '' || hasPermission('view_server_logs') === '0') { + if (! hasPermission('view_server_logs')) { abort(403); } diff --git a/Updated_Cms/app/Http/Middleware/RealClientIpMiddleware.php b/Updated_Cms/app/Http/Middleware/RealClientIpMiddleware.php index c2ca4df94f..24c2f6bca3 100644 --- a/Updated_Cms/app/Http/Middleware/RealClientIpMiddleware.php +++ b/Updated_Cms/app/Http/Middleware/RealClientIpMiddleware.php @@ -18,22 +18,22 @@ class RealClientIpMiddleware ]; foreach ($proxyHeaders as $header) { - if (! empty(\Illuminate\Support\Facades\Request::server($header))) { - $ip = \Illuminate\Support\Facades\Request::server($header); - if (str_contains((string) $ip, ',')) { - [$ip] = explode(',', (string) $ip); + $value = $request->server->get($header); + if (is_string($value) && $value !== '') { + $candidate = $value; + if (str_contains($candidate, ',')) { + [$candidate] = explode(',', $candidate); } - $ip = trim((string) $ip); - if (filter_var($ip, FILTER_VALIDATE_IP)) { - // Set the real IP as REMOTE_ADDR - $request->server->set('REMOTE_ADDR', $ip); + $candidate = trim($candidate); + if (filter_var($candidate, FILTER_VALIDATE_IP)) { + $request->server->set('REMOTE_ADDR', $candidate); break; } } } // Special handling for REMOTE_ADDR with multiple IPs - $remoteAddr = \Illuminate\Support\Facades\Request::server('REMOTE_ADDR'); + $remoteAddr = $request->server->get('REMOTE_ADDR'); if (is_string($remoteAddr) && str_contains($remoteAddr, ',')) { [$ip] = explode(',', $remoteAddr); $ip = trim($ip); diff --git a/Updated_Cms/app/Http/Middleware/VPNCheckerMiddleware.php b/Updated_Cms/app/Http/Middleware/VPNCheckerMiddleware.php index 6f180bb47c..c29bf357fb 100644 --- a/Updated_Cms/app/Http/Middleware/VPNCheckerMiddleware.php +++ b/Updated_Cms/app/Http/Middleware/VPNCheckerMiddleware.php @@ -40,7 +40,18 @@ class VPNCheckerMiddleware $userIp = $request->ip(); $apiResponse = $ipService->ipLookup($userIp); - $asn = $apiResponse['asn']['asn'] ?? ''; + $asn = ''; + if (is_array($apiResponse)) { + $asnSection = $apiResponse['asn'] ?? null; + if (is_array($asnSection)) { + $asnValue = $asnSection['asn'] ?? null; + if (is_string($asnValue)) { + $asn = $asnValue; + } elseif (is_int($asnValue)) { + $asn = (string) $asnValue; + } + } + } $asnWhitelisted = WebsiteIpWhitelist::where('asn', $asn) ->where('whitelist_asn', '=', '1') ->exists(); @@ -61,8 +72,11 @@ class VPNCheckerMiddleware ]); } - if (isset($apiResponse['threat']) && is_array($apiResponse['threat'])) { - $filteredThreats = array_diff_key($apiResponse['threat'], array_flip(['blocklists', 'is_icloud_relay', 'is_datacenter', 'is_tor', 'is_proxy'])); + if (is_array($apiResponse) && isset($apiResponse['threat']) && is_array($apiResponse['threat'])) { + $filteredThreats = array_diff_key( + $apiResponse['threat'], + array_flip(['blocklists', 'is_icloud_relay', 'is_datacenter', 'is_tor', 'is_proxy']) + ); if (in_array(true, $filteredThreats, true)) { WebsiteIpBlacklist::create([