Project to explore the use of AdBlocker filterlists to fingerprint users.
- Python 3.X
- NodeJS with npm or yarn
conf/
: Configuration files for the experiments. parsed with hydra.data/
: Data files and datasetsdocs/
: Documentation and notessrc/
: Source code for tools, libraries, and pipelines you developscripts/
: All scripts associated with running and analyzing the experiments.run/
: Scripts for running experiments.paper_stats/
: Scripts for generating statistics for the paper.statistics_from_adblockers/
: Statistics provided by adblockers about filter list usage.manage/
: Scripts for managing the project. Don't modify these scripts unless you know what you are doing.
We provide two methods to setup the project. The first method is to install the project locally and the second method is to use a docker container with preconfigured environment.
-
Clone the repository
-
Install the required python environment from
environment.yml
using conda with the following command:conda env create -f environment.yml
-
Activate the environment
conda activate scraping
-
Update the environment variables in
.env
file. You can copy the.env.example
file and update the values.cp .env.example .env
Important
To be able to scrape issues and commits from GitHub, you need to provide a GitHub API token. You can create a token from here, and update the GITHUB_TOKEN
value in the .env
file.
-
Create an empty directory
/data
in the root of the project, or extract thedata.zip
file in the root of the project (for the precomputed data). -
Load the docker image from the docker hub
docker pull filterlistfingerprint/filterlistfingerprint:latest
-
Run the docker image
docker container create -it \ -env-file .env \ -v $(pwd)/data:/flfp/data \ filterlistfingerprint/filterlistfingerprint:latest
To reproduce our results, we provide a comprehensive instruction manual in docs/REPRODUCING.md.