openziti / zrok

Geo-scale, next-generation peer-to-peer sharing platform built on top of OpenZiti.
https://zrok.io
Apache License 2.0
2.48k stars 96 forks source link

Interstitial Pages and Public Frontends #704

Closed michaelquigley closed 1 month ago

michaelquigley commented 1 month ago

Introduce a new interstitial page announcing the fact that the internet user is arriving at a web resource that shared publicly through zrok. It should announce the full hostname of the zrok share, making it very clear what address the user is actually navigating to. This is potentially the best method to mitigate abuse of the free public frontend service.

The interstitial page can be disabled on the requesting side by setting a specific request header. This will allow API shares and similar to continue working as they always have.

The interstitial page should be globally enabled/disabled in the frontend config, allowing self-hosters who don't want it to disable it. This means different frontends could also have different configuration options. This will facilitate setting one configuration for the primary public frontend at zrok.io, while also allowing bring-your-own-domain frontends to have the interstitial disabled.

The interstitial page should be able to be disabled on a per-account level (facilitating disabling the interstitial for accounts that are in different tiers).

michaelquigley commented 1 month ago