electron/shell/browser/net
Biru Mohanathas ced2e8779f
feat: Allow detection of MITM HTTPS proxies like ZScaler (#30174)
* feat: Allow detection of MITM HTTPS proxies like ZScaler

For security purposes, Figma heavily restrics the origins that are
allowed to load within our Electron app. Unfortunately some corporate
environments use MITM proxies like ZScaler, which intercepts our
connection to `https://www.figma.com` and serves a redirect to e.g.
`https://gateway.zscloud.net` before finally redirecting back to
`https://www.figma.com`.

In order to detect this situation and handle it gracefully, we need to
be able to know whether or not the certificate for our own origin
(`https://www.figma.com`) is chained to a known root. We do this by
exposesing `CertVerifyResult::is_issued_by_known_root`.

If the certification verification passed without the certificate being
tied to a known root, we can safely assume that we are dealing with a
MITM proxy that has its root CA installed locally on the machine. This
means that HTTPS can't be trusted so we might as well make life easier
for corporate users by loosening our origin restrictions without any
manual steps.

* Tweak docs wording
2021-08-02 10:24:58 +09:00
..
asar chore: use =default for default constructors/destructors (#29511) 2021-06-04 13:16:13 +09:00
cert_verifier_client.cc feat: Allow detection of MITM HTTPS proxies like ZScaler (#30174) 2021-08-02 10:24:58 +09:00
cert_verifier_client.h feat: Allow detection of MITM HTTPS proxies like ZScaler (#30174) 2021-08-02 10:24:58 +09:00
electron_url_loader_factory.cc chore: bump chromium to 94.0.4584.0 (main) (#30030) 2021-07-26 09:02:16 -07:00
electron_url_loader_factory.h fix: handle redirects within registered protocols (#29796) 2021-07-15 20:14:46 +09:00
network_context_service.cc chore: bump chromium to 93.0.4530.0 (master) (#29256) 2021-06-03 01:05:04 -07:00
network_context_service.h
network_context_service_factory.cc
network_context_service_factory.h chore: clean up forward declarations (#29904) 2021-07-02 09:51:37 +09:00
node_stream_loader.cc chore: fix typos in comments (#29362) 2021-05-27 11:48:03 -07:00
node_stream_loader.h chore: bump chromium to 93.0.4530.0 (master) (#29256) 2021-06-03 01:05:04 -07:00
proxying_url_loader_factory.cc chore: bump chromium to 93.0.4550.0 (main) (#29751) 2021-06-22 12:17:16 -07:00
proxying_url_loader_factory.h chore: use consistent integer type for request ID (#29540) 2021-06-14 21:01:36 +09:00
proxying_websocket.cc chore: bump chromium to 93.0.4550.0 (main) (#29751) 2021-06-22 12:17:16 -07:00
proxying_websocket.h chore: bump chromium to 93.0.4530.0 (master) (#29256) 2021-06-03 01:05:04 -07:00
resolve_proxy_helper.cc chore: bump chromium to 93.0.4530.0 (master) (#29256) 2021-06-03 01:05:04 -07:00
resolve_proxy_helper.h chore: bump chromium to 93.0.4530.0 (master) (#29256) 2021-06-03 01:05:04 -07:00
system_network_context_manager.cc refactor: use PathProvider for user-data-dir and others (#29649) 2021-06-15 09:32:56 +09:00
system_network_context_manager.h chore: clean up forward declarations (#29904) 2021-07-02 09:51:37 +09:00
url_pipe_loader.cc chore: bump chromium to 94.0.4584.0 (main) (#30030) 2021-07-26 09:02:16 -07:00
url_pipe_loader.h chore: bump chromium to 93.0.4530.0 (master) (#29256) 2021-06-03 01:05:04 -07:00
web_request_api_interface.h