Closed Bug 779197 Opened 12 years ago Closed 6 years ago

Use a protocol not accessible from content

Categories

(Add-on SDK Graveyard :: General, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: ochameau, Unassigned)

References

(Blocks 1 open bug, )

Details

(Keywords: privacy, Whiteboard: [fingerprinting])

As reported by Jorge, some hackers exposed ways to detect which addons are installed by loading resource:// URIs.
And as all jetpack addons use these URIs it make them a bit more unsafe.
We should use another protocol which would prevent that by disallowing loading it from content.
We already discussed about new protocol specific to addon content in bug 644595,
as part of Addon Page API.
Do we have any more details on how he detected add-ons in this way? The paper is pretty short on details and I want to test if the fix I have solves it or not.
Assignee: nobody → dtownsend+bugmail
Nevermind, I found something that works.

I recommend we don't land this before implementing bug 820213 for people who actually want to inject content into content
Depends on: 820213
We could use an approach that I used in Scriptish to block requests to an add-on's resource: uri if the request comes from page that is not a chrome or resource uri.

https://github.com/scriptish/scriptish/blob/master/extension/components/scriptish.js#L192-L198

I think we could even block requests to the internal directories via its resource: uri from outside the add-on.
Flags: needinfo?(dtownsend+bugmail)
(In reply to Erik Vold [:erikvold] [:ztatic] from comment #5)
> We could use an approach that I used in Scriptish to block requests to an
> add-on's resource: uri if the request comes from page that is not a chrome
> or resource uri.
> 
> https://github.com/scriptish/scriptish/blob/master/extension/components/
> scriptish.js#L192-L198
> 
> I think we could even block requests to the internal directories via its
> resource: uri from outside the add-on.

It's a solution, but it adds a lot of work (every add-on with its own content policy for every url access from every page!) that can be avoided with a custom protocol. I should have a proof of concept up in the next few days.
Flags: needinfo?(dtownsend+bugmail)
Keywords: privacy
Summary: Use protocol not accessible from content → Use a protocol not accessible from content
Whiteboard: [fingerprinting]
Assignee: dtownsend+bugmail → nobody
Priority: P1 → --
Priority: -- → P3
See Also: → 863246
I feel like this is a dupe of another bug, but I think Dan would know for sure.
Flags: needinfo?(dveditz)
I suppose we can call this done? Comment 0 is about add-ons. Legacy addons are gone and Web Extensions use moz-extension; comment 0 seems to be satisfied. resource:// still exists for internal Firefox resources (including system addons which might be hybrid/legacy ones) but bug 863246 made that better by requiring resources to be exposed intentionally.
Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(dveditz)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.