Downstream applications need one shared guard for writes from other sites, forwarded headers and outbound calls.
Current state: one application carries its own cross-origin guard and forwarded header rules. Any other application would have to copy them. Each reads the proxy list through gouncer but parses its public address itself.
Proposal: a new edgekit module on the standard library only. It works out the client address, scheme and host once, from trusted proxies only. It wraps the standard cross-origin protection with an optional public address. It logs a reason for each refused write. It offers a report-only mode and lets the application write the refusal. A dialer refuses loopback, private and link-local addresses.
Trigger: a second application needs the guard.
Downstream applications need one shared guard for writes from other sites, forwarded headers and outbound calls.
Current state: one application carries its own cross-origin guard and forwarded header rules. Any other application would have to copy them. Each reads the proxy list through gouncer but parses its public address itself.
Proposal: a new edgekit module on the standard library only. It works out the client address, scheme and host once, from trusted proxies only. It wraps the standard cross-origin protection with an optional public address. It logs a reason for each refused write. It offers a report-only mode and lets the application write the refusal. A dialer refuses loopback, private and link-local addresses.
Trigger: a second application needs the guard.