Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spec] Provide reasonable limits on the data that can be included in topics classification input #211

Open
chrisvls opened this issue Jun 27, 2023 · 6 comments

Comments

@chrisvls
Copy link

chrisvls commented Jun 27, 2023

Site developers need to make decisions about when to call the Topic API. Site developers face different statutory and business requirements when their site grants third-parties access to data that may contain PII, indicators of sensitive topics, or cross-site or other identifiers.

To address these concerns today, site developers use technical means to ensure that the use of third-party cookies does not expose such information to third parties. In the alternative, when they chose to have the site send sensitive data to third parties, they face statutory and other requirements, including signing a contract with the third party, disclosing the identity of the third party to their users, and other requirements.

As currently spec'd, the Topics API makes it difficult for the site developer to fulfill these obligations. Section 6 of the spec places no specific limits on the Topics calculation input data. This makes it very difficult for the site developer to use technical means to control the data exposed to the browser vendor. The spec could also be read as exposing data that developers have always assumed would be private only to authorized origins, like cookie or local storage data. This would require the site developers re-evaluate past choices about where data resides. Also, it is not practical to use the normal alternative — contractual arrangements — to cover these requirements, as the site would need an agreement with all implementing browsers.

Ideally, the spec adds reasonable limits on the data exposed to the browser vendors, so that the data included in the topics calculation input data:

  • is easily understood by the site developer and, in turn, the user
  • has a limited default scope, such host names and page metadata
  • is optionally expanded or limited by the developer
  • does not contain data from local storage or cookies unless specifically allowed
@chrisvls
Copy link
Author

@michaelkleber Here you go... thanks.

@michaelkleber
Copy link
Collaborator

Thanks @xyaoinum, the addition in #212 looks good to me. @chrisvls does this meet your goals?

@dmarti
Copy link
Contributor

dmarti commented Jun 27, 2023

Why document's [=Document/URL=] and not the [=host=] of a {{Document}}'s [=Document/URL=] ?

Full URLs can contain just as many informative and possibly sensitive keywords as page titles, among other reasons because it's an SEO best practice to put keywords in the URL path.

Related: #118 (closed, decided not to use page title)

@michaelkleber
Copy link
Collaborator

The question of what information should be used in figuring out a page's topics is a very interesting one, where we don't feel like there is only one "right answer". Rather, it's a case appropriate for experimentation by different implementers with different algorithms. Chrome's current behavior is to just use the host, and even though we decided not to use page title by default right now, it's a good subject of ongoing thinking and discussion.

But Chris was looking for some outer-limit constraints that we can put in the spec and that we think should apply to all implementations, particularly to address the fear that some implementation might use information that seems unreasonable, like stuff beyond the current page. I think Yao's change does a good job of making clear what space of ideas seems worth exploring vs. what seems out of bounds.

@chrisvls
Copy link
Author

chrisvls commented Jul 3, 2023

Thanks @xyaoinum and @michaelkleber ... I do think that scoping the input data to the URL and metadata is reasonable.

As raised in #188, these may include sensitive data in some cases. But they are under the control of the site developer, which would allow the developer to choose not to call the API on a page where that would be bad. From a general PII perspective, this is very helpful.

That said, I don't know the general publisher use case that well. Do publishers need to be able to broadcast sensitive keywords for SEO but suppress exposing them to the Topics API? Perhaps @dmarti or @jkarlin can weigh in, per the discussion in #118 as to whether this should go further to allow the site to explicitly grant or deny data beyond hostname, etc.

The change has two interesting qualifiers... "by default" and "unless specifically allowed"... in the parlance of the spec, I am not sure what would override the default or who would be doing the allowing. I think from the general privacy case, the propose change is fine as-is. If the user chooses to override the default or grant a specific permission, that is their business. If the site does not wish to broaden access, then that is under the site's control.

Thanks!

@patmmccann
Copy link

patmmccann commented Jul 24, 2023

I think 118 was closed bc, for example, a cross-origin frame typically does not have access to any of the document metadata unless a publisher is to provide it to the third-party origin, eg via a post message into the frame or via query string parameters.

It seems by extension the concerns that led to the closing of 118 can easily be addressed by simply ensuring publishers are opting into the extra information being passed to the topics caller, so they are not receiving any net new information from the current state of the internet, as it appears @chrisvls suggests above.

If a permission policy sets the access to the incremental information, then we don't have to worry about what information is leaked to callers, because we know they would all be explicitly green-lighted, and no caller would get access to information they may not have today through a similar green-lighting of information sharing by the publisher.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants