Flask-NoFLoC is a Flask extension which disables FLoC by adding the header
Permissions-Policy: interest-cohort=()
to each HTTP response of your app. Documentation
To set it up, follow the usual Flask extension setup, either directly:
from flask import Flask
from flask_nofloc import NoFLoC
app = Flask(__name__)
NoFLoC(app)
or using the init_app
-paradigm:
# extensions.py
from flask_noflock import NoFLoC
nofloc = NoFLoC()
# app.py
from flask import Flask
from extensions import nofloc
def create_app(settings):
app = Flask('myapp')
nofloc.init_app(app)
return app
If you only want to exclude specific route, you can use a decorator:
from flask_nofloc import add_nofloc_header
@app.route('/nofloc')
@add_nofloc_header
def no_floc():
return 'no FLoC'
Install via pip and your favorite installation method:
pip install Flask-NoFLoC
For some background on FLoC, here is a list of related links:
- Technical background: https://web.dev/floc/
- Specification: https://github.com/WICG/floc / https://wicg.github.io/floc/
- An implementation of SimHash: https://github.com/hybridtheory/floc-simhash
- Critique on FLoC: https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea
- How to opt out: https://paramdeo.com/blog/opting-your-website-out-of-googles-floc-network
- Browser coverage: https://www.theverge.com/2021/4/16/22387492/google-floc-ad-tech-privacy-browsers-brave-vivaldi-edge-mozilla-chrome-safari
Came here for Django? Check out django-nofloc.