[tor-bugs] #30570 [Applications/Tor Browser]: Implement per-site security settings support

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Nov 25 16:06:48 UTC 2019


#30570: Implement per-site security settings support
-------------------------------------------------+-------------------------
 Reporter:  gk                                   |          Owner:
                                                 |  pospeselr
     Type:  enhancement                          |         Status:
                                                 |  assigned
 Priority:  High                                 |      Milestone:
Component:  Applications/Tor Browser             |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  ux-team, TorBrowserTeam201911,       |  Actual Points:
  tbb-9.5                                        |
Parent ID:  #25658                               |         Points:  10
 Reviewer:                                       |        Sponsor:
                                                 |  Sponsor9
-------------------------------------------------+-------------------------

Comment (by antonela):

 hi pospeselr! thanks for your deep research on the technical side of this.

 I have some questions:

 Replying to [comment:10 pospeselr]:
 > Without having delved too deeply into the prefs set by torbutton, I
 think we can safely assume that it will not be easy to modify Firefox to
 have per-tab scope for these globals, so for this ticket they can probably
 be safely ignored for now.
 >

 Does it mean that we are going to control just NoScript existing sources?

 > I think that 'Fetch' and 'JavaScript' could probably be joined together
 as a meta capability for the purposes of our UX, which would bring us down
 to 5:
 >  - JavaScript + Fetch
 >  - Web Fonts
 >  - Media
 >  - Plugins
 >  - WebGL
 >
 This seems a good list. I think that something we did well in the past was
 sorting not JS elements under the `Active Content` label. Advanced
 settings could allow granular customization, but for the control center
 doorhanger, I think the two items are enough.

 > However, if we're going the permissions route via the info (i) icon we
 will need to decide ''which'' domain that a custom setting would apply to.
 To 'just make a website work' and enable JavaScript for example, we would
 probably have to enable it for every domain used in a page, otherwise we
 end up with frustrated users.
 >
 Fair point. I think we will need to go deep on first-party domains vs
 third party domains allowance.

 > We could split up each of the NoScript capabilities to differentiate
 between the first-party domain (youtube.com) and all of the 3rd party
 domains (gstatic.com, google-tracker.com, etc) to give users ''some''
 fine-grained control, without going crazy and listing every single 3rd
 party domain like the NoScript menu currently does.
 >
 > The worse case scenario here of course is a web-page with 10 different
 possible permissions to toggle. In reality I ''suspect'' most websites
 would have a requested permissions list something like this:
 >  - JavaScript (1st Party)
 >  - JavaScript (3rd Party)
 >  - Web Fonts (3rd Party)
 >  - Media (3rd Party)
 >
 Here we go. Web Fonts and Media can live under `active content`. And, then
 we have two js sources. Works for me.


 > == No First-Party Isolation
 >
 > One downside of this fine-grained control is that NoScript's per-domain
 settings have no concept of first-party isolation. If I enable scripts
 from gstatic.com while visiting youtube.com, they are automatically
 enabled when visiting other google properties. This problem would quickly
 balloon if we go the route mentioned above in enabling a capability for
 all domains in a page. For instance, a user enabling 'JavaScript' on
 facebook.com would mean whitelisting Facebook's tracking domains
 everywhere.
 >
 > My hunch here is that double-keying domain permissions with the first-
 party domain is a good idea so that enabling a 3rd party script necessary
 for some first-party does not automatically load them everywhere.
 >
 I like us to work on this feature. Maybe is something we can discuss with
 NS folks.

 >
 > == Typical-User and Power-User Segregation / Conflict
 >
 > Regardless of what we end up doing here technically, we are going to end
 up with two different places to modify these new permissions: in the (i)
 dialog (or in about:preferences#privacy) and in the NoScript drop down
 panel. Our implementation will necessarily be simpler and less powerful
 than NoScript's, which means there will inevitably be a conflict between
 what our per-site permissions UI will say and what NoScript's UI will say,
 especially if a user modifies their preferences with both UIs.
 >
 You are right. [https://simplysecure.org/blog/noscript-case-study,
 SimplySecure has been working on redesigning NoScript] with a special
 focus in per-site settings. My question here is: If we are going with NS
 settings to define our per-site, should we go minimal with our settings
 management and focus *especially* on 1. improving site breakage 2. collect
 real feedback on-site breakage (like `Site not working` link in Firefox)
 and let NS manage granular settings for advanced users in their UI?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/30570#comment:12>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list