From ffb3f83324bbc762d92d8dff2a377283bfc08f77 Mon Sep 17 00:00:00 2001 From: Qstick Date: Wed, 7 Dec 2022 21:18:17 -0600 Subject: [PATCH] Simplify X-Forwarded-For handling This happens in asp.net middleware now Co-Authored-By: ta264 --- .../Extensions/RequestExtensions.cs | 34 +------------------ 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/src/Prowlarr.Http/Extensions/RequestExtensions.cs b/src/Prowlarr.Http/Extensions/RequestExtensions.cs index f620f9be0..e46cfd7fe 100644 --- a/src/Prowlarr.Http/Extensions/RequestExtensions.cs +++ b/src/Prowlarr.Http/Extensions/RequestExtensions.cs @@ -126,39 +126,7 @@ namespace Prowlarr.Http.Extensions remoteIP = remoteIP.MapToIPv4(); } - var remoteAddress = remoteIP.ToString(); - - // Only check if forwarded by a local network reverse proxy - if (remoteIP.IsLocalAddress()) - { - var realIPHeader = request.Headers["X-Real-IP"]; - if (realIPHeader.Any()) - { - return realIPHeader.First().ToString(); - } - - var forwardedForHeader = request.Headers["X-Forwarded-For"]; - if (forwardedForHeader.Any()) - { - // Get the first address that was forwarded by a local IP to prevent remote clients faking another proxy - foreach (var forwardedForAddress in forwardedForHeader.SelectMany(v => v.Split(',')).Select(v => v.Trim()).Reverse()) - { - if (!IPAddress.TryParse(forwardedForAddress, out remoteIP)) - { - return remoteAddress; - } - - if (!remoteIP.IsLocalAddress()) - { - return forwardedForAddress; - } - - remoteAddress = forwardedForAddress; - } - } - } - - return remoteAddress; + return remoteIP.ToString(); } public static string GetHostName(this HttpRequest request)