feat(server): harden hostile input and overload behavior (#15)
quality-gate / quality (push) Failing after 1m5s
quality-gate / quality (push) Failing after 1m5s
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user