Comments (9)
Nice find! I welcome a PR to switch our implementation to use the Fly-Client-Ip
header!
from epic-stack.
I will def work on it!
from epic-stack.
Great work Nick!
from epic-stack.
Been a busy week but I did get a chance to do some testing. It looks like Fly-Client-Ip can indeed work. One edge case though. If someone has a proxy in front of the app like Cloudflare, Fly-Client-Ip will contain the IP of Cloudflare, not the end user.
I did a quick search and it does not look like epic-stack requires the use of cloudflare. However, it can have unintended consequences if someone uses Cloudflare and is unaware. Do you have a recommendation on where to mention this or if it should be mentioned at all?
from epic-stack.
Hmmmm... It definitely should be mentioned. Can probably just do a code comment. People making changes is always going to affect the assumptions we make and we can't over-complicate the codebase for every possible change people make to the stack.
from epic-stack.
Hi @nickjamesio, are you still planning on working on this?
from epic-stack.
Hey! Sorry about that and thanks for the nudge. I will be back from traveling in one week. I will take a look when I get back if no one has fixed it by then. Marking my calendar :)
from epic-stack.
Just want to say I have some time this evening to work on this :)
from epic-stack.
@nickjamesio It may be of interest to you that Cloudflare sets the header CF-Connecting-IP to the original client's IP.
I don't know whether
- Special casing proxies makes any sense (though Cloudflare is super popular and possibly worth it)
- The fact that one can spoof CF-Connecting-IP outside of Cloudflare makes it impossible to write logic for
- CF-Connecting-IP is even forwarded by Fly Proxy
Just thought I'd mention it.
from epic-stack.
Related Issues (20)
- Running Playwright (or the stack) in Docker HOT 1
- No relative import paths HOT 2
- Configuration for the possibility of using postgresql
- /swapon command failing when deploying to production HOT 2
- Tests failing on a fresh install due to SyntaxErrors HOT 2
- Adding tags/releases to the repository HOT 6
- Running Vitest locally can cause errors due to missing schema updates in test database HOT 3
- SENTRY_PROJECT missing from deploy.yml HOT 10
- Conflict on seeding production db HOT 1
- Remove `@remix-run/server-runtime` as a dependency HOT 1
- Sentry really slows down requests HOT 2
- Deployment is failing due to swap memory
- Inquiry: Is the authenticator not using the connection session? HOT 1
- tsconfig issues "moduleResolution"
- Reference to eslint-plugin-remix-react-routes HOT 1
- Incomplete Setup Using npx create-remix@latest HOT 3
- ThemeSwitcher form submit before js loads causing json in browser response HOT 1
- nonce empty on client HOT 1
- circular dependencies HOT 3
- Client Hints nonce hydration error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from epic-stack.