Open cmoog opened 2 years ago
CCing @stephendonner 👍
cc @lidel and @spylogsster
I think this is due to a misunderstanding of:
Additionally, Brave only allows subresources to be loaded over IPFS when the main page is loaded from IPFS.
What we meant by this is that an HTTP(S) page is not allowed to load IPFS resources, not to prevent an IPFS page from loading HTTP(S) resources.
Are there any security/privacy risks associated with the other way around?
I think this is due to a misunderstanding of:
Ah, I see. Thank you for the clarification @diracdeltas.
Are there any security/privacy risks associated with the other way around?
Yes, absolutely. The principle value proposition of IPFS is that content is immutable and permanent. When sub-resources are loaded over http(s), both of these properties cease to hold. In particular, this behavior is non-obvious to the user unless they manually verify that the page has no http(s) dependencies.
What use is an "immutable" IPFS html file if all of its style/script/image dependencies are accessed over http(s) and mutable by whoever controls the http(s) host??
I can understand if the default behavior still allows http(s), but I think Brave should at least include an opt-in configuration option for blocking non-IPFS sub-resources.
Two interlinked topics here (or four, if we look at ipfs://
and ipns://
separately):
ipfs://
or ipns://
loading subresources over HTTP(S) (<script>
, <style>
, <img>
, <video>
, <iframe>
etc)ipfs://
or ipns://
executing fetch('https://..
calls to talk to web2 service endpoints:+1: I think it is sensible for Brave to "detect use of HTTP on ipfs://
and ipns://
origins"
and show a warning about page using "mixed protocols" + Shields UP option to block them as opt-in.
:question: But we need to be mindful about the default behavior and its impact on existing websites. Areas of concern:
ipfs://
sounds sensible, it will force people to "do the right thing" and publish all necessary subresources on IPFS, but if we start blocking all "mutable" things here, should we also block ipns://
? ipns://
will break all DNSLink websites where third party JS is talking to some web2 style HTTP endpoint.
Description
Sites loaded with
ipfs://
andipns://
DO load HTTP sub resources even when "Shields UP for this site". As is indicated in the documentation, my expectation as a user is that only IPFS resources are resolved when viewing a page hosted on IPFS. Either the implementation doesn't properly match the spec or the spec is misleading (or I'm otherwise confused).Steps to Reproduce
Local Node
resolution method.Some examples sites:
Actual result:
The browser loads HTTP(S) resources without blocking them.
Expected result:
No HTTP(S) sub resources should be resolved when accessing an IPFS/IPNS site.
Reproduces how often:
100%.
Brave version (brave://version info)
Miscellaneous Information:
Related: