-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[3.9][Privacy] Block usage of FLoC by default #33212
Conversation
This comment was marked as abuse.
This comment was marked as abuse.
Co-authored-by: Brian Teeman <[email protected]>
Co-authored-by: Brian Teeman <[email protected]>
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
Agreed, we are just still discussing about that. We definitely don't want the above special case to live on in J4. |
Maybe, however since most people don't update their htaccess on a Joomla update, we can't rely on this alone. Be my guest to add this header to the htaccess. |
I'm happy to accept a changed text PR to this branch. |
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
Such a shame that the project doesn't take the use of cookies as seriously |
Header has been set in htaccess.txt as well. Testing on my system only showed one header to be sent. |
Update SQL scripts for PostgreSQL and for MS SQL Server/SQL Azure are missing. |
Have been added. Sorry, it was late yesterday... |
We try to improve: https://docs.joomla.org/GSoC_2021_Project_Ideas#Cookies_management |
Co-authored-by: Richard Fath <[email protected]>
Since J4 has already the system_httpheader and @zero-24 already did the backport for J3 https://github.com/zero-24/plg_system_httpheader why don't you merge that to J3 (assuming that @zero-24 has no objections)? |
This comment was marked as abuse.
This comment was marked as abuse.
It was decided to keep the implementation minimal and to not use a separate plugin.
This feature is enabled by default, so people would need to disable it actively. In that case they can also click away the post install message. |
This has nothing to do with security, add it in J4 (default off), but don't force this in J3 in the name of security. At best this is a privacy concern (in the browser). |
I've discovered an issue. When I've tested this at home on my local Apache server, it worked like described in the comment in htaccess.txt that when I enabled the directive in the .htaccess file, I had to disable the "Block FLoC" in Global configuration in order not to get duplicate headers. But now I've noticed that on my webspace, which is shared hosting by IONOS (formerly 1and1), it did not work like that. I had to use both, the backend block option and the htaccess directive, to get the header set for the page (i.e. the index.php file) and for real files like css, js, ... The reason for this is following: On IONOS shared hosting, PHP runs as CGI, and in Apache configuration the "AllowOverride" parameter is set to false. That means that such htaccess directives like the new header or the nosniff header are not applied to PHP files. So for this special case the comment in the htaccess.txt telling to switch off the blocker option in backend when enabling the htacess directive is wrong. But to explain that in the comment in htaccess.txt might result in the comment being a bit long, especially if I have to write that explanation. What shall we do? Make a PR to extend the comment by an explanation of that? Does someone have a proposal for a short enough text for the comment? |
This comment was marked as abuse.
This comment was marked as abuse.
@PhilETaylor Is this your proposal for the helping comment in htaccess.txt? 😉 |
Yes, I know, "stay away from shared hosting". |
This comment was marked as abuse.
This comment was marked as abuse.
Joomla 3.9.26 -> 27 Just installed 3.9.27 with the FLoC Block set on as default and it gnarled an animation that starts on the open of my page. The animation was fine yesterday, but glitched on the update. It also knocked about 3 to 4% from my GT Metrix performance on the same site. Rebuilt the cache and recompiled the SCSS, but still misfired the anim, so turned of FLoC and bingo! It's back to normal. So, no problem with the idea but is there another way of implementing this? I see a suggestion of using .htaccess, is this a possibility? This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/33212. |
With FLoC turned on I'm eyeballing a second or so delay on larger sites too. This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/33212. |
@dmleeman Yes. You can add (uncommented) section from the htaccess.txt to your .htaccess file:
(The "nosniff" thing is not related to the FLoC but was added in past by another recommendation, see the postinstall messages in past.) Then you should switch off the FLoC block in Global Configuration in order not to get that "Permissions-Policy" header duplicated. There is one exception I've noticed on shared hosting of my provider (IONOS): They run PHP as CGI and have the "AllowOverride" parameter set to false in the Apache config, so the header directive from .htaccess is not applied to PHP files, e.g. index.php. In such case you need both, the .htacess directive and the Global Configuration option. |
it is concerning that this is having a performance and functionality impact!! |
This comment was marked as abuse.
This comment was marked as abuse.
Yup, not too proud of myself on this. Just realised I had not set my gantry template from Dev to Production on the FLoC enabled test. Also had 3 other site admins open so may have checked the wrong ones. Looks ok now I've compared them side by side properly. Schoolboy error, must be due a day off |
This comment was marked as abuse.
This comment was marked as abuse.
Hello all, After reading the FLoC explainer, it seems that it increases privacy, by tracking only data relevant for ads through cohorts instead of individuals. Would you care to explain why the the Joomla! project believes that this feature is not in the interests of owners of Joomla!-powered websites and their visitors? Thank you This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/33212. |
@molhokwai A simple google search for "floc bad" will bring up results from respected sites such as the Electronic Frontier Foundation (eff.com) and Wired.com explaining why FLoC is a bad idea. This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/33212. |
This comment was marked as abuse.
This comment was marked as abuse.
@PhilETaylor That is true, but the default value is a statement about whether the Joomla team believes that FLoC is a good thing or a bad thing. (And the consensus of privacy organisations worldwide is that it is a bad thing - and even Google has backtracked on it.) |
This comment was marked as abuse.
This comment was marked as abuse.
@PhilETaylor I am in agreement that FLoC is a bad thing - so you will not be seeing a PR from me. I was just saying that whilst having an option is non-partisan, the choice of default value is a consensus (i.e. political in the definition you used) statement about the community view of FLoC. |
This comment was marked as abuse.
This comment was marked as abuse.
@PhilETaylor Ahhh - the anarchy of open source where an individual with write access can do what they like and consensus is optional. I have contributed to many open source projects, and they vary considerably in these areas. I have certainly contributed to projects with good ethics, and also one (a Joomla extension) where the project has effectively been destroyed by being taken over by a company who then decided that open source meant make it available for free but do limited maintenance and refuse all contribution from external users. On the whole, my impression of the Joomla team/community is that there is a lot of collaboration and consensus building, but I guess there will always be exceptions. |
This comment was marked as abuse.
This comment was marked as abuse.
I can guarantee you, that I don't have write access to the Joomla repo (and for these exact reasons, I also don't want to have that access.) I brought the issue forward in a meeting of the production team and that escalated that to OSM. I've been vocal about this change and will defend it further, but I did not make the final decision. In the end, every decision has to be made by someone "in power", even if it is just through taking action. However, the teams involved made the decisions based on solid infos and based on feedback from the community. |
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
This comment was marked as abuse.
It was not my intent to provoke a flame war. As @PhilETaylor points out, FLoC is already dead in the water, so this feature is nugatory and should be reverted in due course. |
Issue
As a replacement for third party cookies, Google has introduced the Federated Learning of Cohorts into the Chrome browser lately. This feature is supposed to allow better tracking of users while also keeping data privacy. Details can be read here. The Joomla! project disagrees that this feature is in the interests of the owners of Joomla!-powered websites as well as their visitors. We share the assessment of the EFF as well as many other organisations (Mozilla, Microsoft, Opera, WordPress).
We consider this a security issue and thus will roll out countermeasures with the next bugfix release of the Joomla 3.9 series.
Summary of Changes
This PR introduces a header to disable Federated Learning of Cohorts, which is sent with every request that is handled by the Joomla framework. The header specifically looks like this:
Permissions-Policy: interest-cohort=()
and is the equivalent of opting out of this feature. Please be aware that this only adds this header to requests which go through the Joomla! application. Assets like CSS files, images or javascript are handled by your webserver directly and we would advise to modify the webserver to add this header to every request directly.
If you really want to disable the blocking of this feature, we added a switch in the global configuration to remove this header.
A postinstall message has been added to the database to inform administrators of this decision.
Testing Instructions
Apply this patch and load a random page of your testing site. The answer to your request should contain the above noted header.
Documentation Changes Required
None.
Handling of this in the future
This PR fixes this issue for the 3.9 and 3.10 releases. We will decide on how to implement this countermeasure in 4.0 in the time before the final release.