Supported ASP.NET Core ingress trust for client-IP rate limiting
nasser-alsuduni0
PROOP

18 days ago

For a Railway ASP.NET Core API exposed only by Railway HTTP networking, what supported mechanism authenticates forwarded client-IP metadata when stable ingress peer CIDRs are unavailable? Please confirm which header is overwritten, its exact semantics, and whether project private-network requests can bypass that boundary. We need spoof-resistant client-IP rate limiting without trusting all peers or a guessed CIDR.

Please provide the recommended ASP.NET Core forwarded-header trust configuration or an authoritative supported alternative. This is a platform configuration question; no secrets or logs are included.

Solved$20 Bounty

Pinned Solution

Yes.

10 Replies

Railway
BOT

18 days ago

Having looked into this, the issue appears to be in your application code or configuration rather than the Railway platform itself, which puts it outside what Railway support can resolve directly.

This is exactly the kind of problem the Railway community is good at, so we'd like to open your thread as a community bounty. Railway pays a bounty to the community member who solves it, and threads like this usually get picked up quickly.

Opening it makes this entire thread public, including everything already posted. Nothing becomes public until you decide. Use the buttons below.

  • Open to the community - Before you click, take a moment to edit or remove anything you'd rather not share. The thread becomes publicly visible right away.
  • Keep it private and close the thread - Nothing becomes public and the thread closes.

Status changed to Awaiting User Response Railway • 18 days ago


Railway

Having looked into this, the issue appears to be in your application code or configuration rather than the Railway platform itself, which puts it outside what Railway support can resolve directly. This is exactly the kind of problem the Railway community is good at, so we'd like to open your thread as a community [bounty](https://docs.railway.com/community/bounties). Railway pays a bounty to the community member who solves it, and threads like this usually get picked up quickly. **Opening it makes this entire thread public**, including everything already posted. Nothing becomes public until you decide. Use the buttons below. - **Open to the community** - Before you click, take a moment to edit or remove anything you'd rather not share. The thread becomes publicly visible right away. - **Keep it private and close the thread** - Nothing becomes public and the thread closes.

nasser-alsuduni0
PROOP

18 days ago

Please escalate this to a human networking engineer. We’re asking about Railway’s ingress contract, not application debugging: which client-IP header is guaranteed to be overwritten, how applications should authenticate the proxy when stable CIDRs aren’t published, and whether private-network requests can bypass that boundary. We need this information to configure ASP.NET Core safely.


Status changed to Awaiting Railway Response Railway • 18 days ago


Railway
BOT

18 days ago

The community is still the best next step here. The buttons below are still live: open the thread up as a public bounty after editing out anything sensitive, or keep it private and close it.


Status changed to Awaiting User Response Railway • 18 days ago


Railway
BOT

18 days ago

This thread has been opened as a public bounty so the community can help solve it. The thread and any further activity are now visible to everyone.

Status changed to Open Railway • 18 days ago


You can use the X-Real-IP to get the client's IP address. That header is written at the edge, so clients can't spoof it.

https://docs.railway.com/networking/public-networking/specs-and-limits#technical-specifications


0x5b62656e5d

You can use the `X-Real-IP` to get the client's IP address. That header is written at the edge, so clients can't spoof it. https://docs.railway.com/networking/public-networking/specs-and-limits#technical-specifications

nasser-alsuduni0
PROOP

17 days ago

Thanks—our live tests confirmed that Railway overwrites X-Real-IP at the public edge. Direct private-network requests can preserve a forged value, though, and we observed multiple edge peer addresses. What supported ASP.NET Core configuration should we use to trust Railway’s edge while rejecting headers from private callers?


There isn't a stable CIDR range for trusting Railway's proxies.


0x5b62656e5d

There isn't a stable CIDR range for trusting Railway's proxies.

nasser-alsuduni0
PROOP

17 days ago

Thanks for confirming. Without stable proxy CIDRs, what supported mechanism distinguishes Railway edge requests from direct private-network requests carrying a forged X-Real-IP? Is there a supported way to restrict ingress to the edge?


nasser-alsuduni0

Thanks for confirming. Without stable proxy CIDRs, what supported mechanism distinguishes Railway edge requests from direct private-network requests carrying a forged X-Real-IP? Is there a supported way to restrict ingress to the edge?

Outside users can’t make requests over the private network. Private networking is only available to services within the environment.


0x5b62656e5d

Outside users can’t make requests over the private network. Private networking is only available to services within the environment.

nasser-alsuduni0
PROOP

17 days ago

Under that trust model, is Railway’s supported recommendation to accept X-Real-IP from any immediate peer, trusting all services within the environment, provided no TCP proxy exposes the API?


Yes.


Status changed to Solved dev • 17 days ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...