Use DuckDuckGo's Image Proxy
mr-northwatch opened this issue · 5 comments
Route images on emails through a proxy, protecting the end-user's IP and User Agent.
Basically, just replace image URLs on images so they start as https://image.com/image.png
and turn into https://external-content.duckduckgo.com/iu/?u=https://image.com/image.png
.
This should be optional since images routed through DDG could be seen by them, so people who don't trust them for whatever reason should have a way to turn the feature off.
I don't know of any other proxies, is any others exist maybe make it a choice between the various services?
It looks like StartPage has a proxy.
Just insert the image URL on the end of https://www.startpage.com/av/proxy-image?piurl=
Besides that there is another new toggle which enables blocking all non "API entry point"-based network requests. For example, this feature can be useful for detecting if @ProtonMail web client apps do unexpected/unintended/shady network requests. Warning: If option enabled the inlined in the emails images won't be loaded (the app displays a warning message per each blocked request).
the app displays a warning message per each blocked request
See the blocked request notification example on screenshot (the whitelisted webclient0://app.protonmail.ch
value here is the in-app-only-available host on which the app hosts the static web clients publicly assembled on CI server from https://github.com/ProtonMail):
Block all non "API entry point"-based network requests
This feature by the way helped detecting the following privacy issue in proton's mail web client (originally listed in #332 (comment)):
The problem was that when the user was exporting the email message in Proton's UI via "More => Export" click all the inlined to email images were requested. So the export was not efficient since there is no need to request inlined images during exporting to EML. But more importantly, the IP address was silently leaking without the user's consent.
By the way @ProtonMail recently switched to loading external images via /api/images?Url=<address>
API. So a similar custom feature implemented in the app doesn't make much sense anymore.