Files
Rendezvous/src/FinalFactory.Rendezvous.Server/Abuse/TrustedProxyForwarding.cs
T
KyuubiYoru 88ef946af5
quality-gate / quality (push) Failing after 1m5s
feat(server): harden hostile input and overload behavior (#15)
2026-07-16 12:37:38 +02:00

25 lines
757 B
C#

using System.Net;
using Microsoft.AspNetCore.HttpOverrides;
namespace FinalFactory.Rendezvous.Server.Abuse;
internal static class TrustedProxyForwarding
{
public static bool IsEnabled(AbuseProtectionOptions options) =>
options.TrustedProxyAddresses is { Length: > 0 };
public static void Configure(
ForwardedHeadersOptions forwarded,
AbuseProtectionOptions abuse)
{
forwarded.ForwardedHeaders = ForwardedHeaders.XForwardedFor;
forwarded.ForwardLimit = 1;
forwarded.KnownProxies.Clear();
forwarded.KnownIPNetworks.Clear();
foreach (string address in abuse.TrustedProxyAddresses ?? [])
{
forwarded.KnownProxies.Add(IPAddress.Parse(address));
}
}
}