Song-Li / cross_browser

This is a project for a browser fingerprinting technique that can track users not only within a single browser but also across different browsers on the same machine.
http://uniquemachine.org/
GNU General Public License v3.0
1.26k stars 264 forks source link

Dockerizing CrossBrowser #83

Closed Adrien-Luxey closed 6 years ago

Adrien-Luxey commented 7 years ago

Hi there,

I spent the last two days getting your project to work on Docker, using Docker Compose to spawn the database and CrossBrowser as two separate containers (I might keep the same DB for other fingerprinting algorithms). My goal is to run a CrossBrowser instance locally, and try out several customized browsers on it. I figured you might appreciate a pull request, to show you how I made it. :)

I heavily cut inside your flask/ directory (renamed server/): I don't use WSGI nor Apache, so I did not feel like keeping these files around. Also, client/ has moved to server/front/. I kept server/tools/, even though I do not think it is called.

I added a mysql/ dir that contains everything database-related. Finally, everything is tied up with the docker-compose.yml at the root. Particularly useful to pass the database credentials to Flask; although, it's the whole architecture that is defined there. My new "How to run" section in the README will make the bootstrapping clear (I hope).

I made the choice of putting the client (JS) and server (Python) in the same container. Indeed, I mostly struggled with the AJAX calls: it's not easy to know the address of the dockerized Flask server from the host's browser in JS. Using location.host as the recipient is way easier than anything else for my single machine config.

Anyway, I appreciate your work, and the available code. It was very clear for PhD code (like I), what a pleasure! I will keep you updated if I am up to any good, and cite your work accordingly. Let's hope we will soon publish a pretty paper (on mitigating the fingerprint's stability over time, not its uniqueness).

Song-Li commented 7 years ago

@Adrien-Luxey HI, thank you so much for your attention. Dockerizing this work is really very important. I'll check the code quickly and merge it later.