I have a web app that makes calls to the API. Due to governmental mass media censorship, some internet providers block requests to that API. To bypass this, I’ve already put my API behind Cloudflare, so the provider can’t block the API by IP address anymore, but they still can block it by domain name as most users use a default DNS controlled by internet provider.
I know there is an option to ask users to use VPN or to change their web browser’s DNS settings to 1.1.1.1
which supports the DoH feature (DNS over HTTPS). Or, in case of a mobile app, I would just use there a custom WebView to override default DNS settings.
I know there are some npm packages to perform encrypted DSN queries (like dohjs
or dns-over-https
) from a web browser. But I need to not just make DNS queries.
So the the question is: How to send encrypted requests from a web app to an API in a way so an internet provider couldn’t block (or even detect) them neither by IP nor by DNS records (except blocking the entire Cloudflare network) without requiring any actions from users.
P.S. As for the UI part of the web app, it (almost) can’t be blocked by internet provider as it’s hosted on a widely used domain – but that option was available for UI html+js part only, but not for the backend part, so I’m looking for some solution to make queries to the API without being blocked by internet providers.