From 34cc1b8062c5b83b3c5d6ae2c17031723e5456a4 Mon Sep 17 00:00:00 2001 From: Ruben Bisharyan Date: Tue, 1 Oct 2024 11:37:53 +0400 Subject: [PATCH] Add Cloudflare "CF-Connecting-IP" header --- .../SharedKernel/Helpers/HttpContextParser.cs | 8 +++++--- .../wwwroot/assets/css/panda-style.css | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Pandatech.VerticalSlices/SharedKernel/Helpers/HttpContextParser.cs b/src/Pandatech.VerticalSlices/SharedKernel/Helpers/HttpContextParser.cs index 0cb305c..f06874f 100644 --- a/src/Pandatech.VerticalSlices/SharedKernel/Helpers/HttpContextParser.cs +++ b/src/Pandatech.VerticalSlices/SharedKernel/Helpers/HttpContextParser.cs @@ -109,7 +109,8 @@ public static string TryParseUserAgent(this HttpContext httpContext) "X-Forwarded-Host", "X-Forwarded-Proto", "X-Forwarded-Server", - "X-Forwarded-Port" + "X-Forwarded-Port", + "CF-Connecting-IP" }; var stringBuilder = new StringBuilder(); @@ -186,7 +187,8 @@ public static decimal TryParseAccuracy(this HttpContext httpContext) public static string TryParseUserNetworkAddress(this HttpContext httpContext) { - string[] headersToCheck = ["X-Forwarded-For", "Forwarded", "X-Real-IP"]; + // Check at first Cloudflare "CF-Connecting-IP" header, which contains client real IP address + string[] headersToCheck = ["CF-Connecting-IP", "X-Forwarded-For", "Forwarded", "X-Real-IP"]; foreach (var header in headersToCheck) { @@ -235,4 +237,4 @@ private static bool IsValidIpAddress(string? ipAddress) return !string.IsNullOrWhiteSpace(ipAddress) && IPAddress.TryParse(ipAddress, out var parsed) && !parsed.IsIPv6UniqueLocal && ipAddress != "::1"; } -} \ No newline at end of file +} diff --git a/src/Pandatech.VerticalSlices/wwwroot/assets/css/panda-style.css b/src/Pandatech.VerticalSlices/wwwroot/assets/css/panda-style.css index 821df53..ebcc69f 100644 --- a/src/Pandatech.VerticalSlices/wwwroot/assets/css/panda-style.css +++ b/src/Pandatech.VerticalSlices/wwwroot/assets/css/panda-style.css @@ -85,7 +85,7 @@ div.topbar { width: 100%; top: 0; border-bottom: 1px solid #ffffff; - z-index: 1000000; + z-index: 1000; } .swagger-ui {