Why is my QtWebEngine still trackable with cookies disabled?
Unsolved
QtWebEngine
-
Hello everyone, I'd be grateful for any light shed on the following mystery!
The problem
Some websites still know which pages my QtWebEngine browser has visited, even though:- It uses an off the record profile
- It has a filter which blocks cookies from being stored in memory
How are these pesky websites still doing it?!
Steps to reproduce
[a] https://nebbia.fitness/en?countryCode=OTHER
[b] https://nebbia.fitness/eu/c/womens-leggings-sweatpants/classic-hero-high-waist-leggings?color=0- In any browser, ensure you are not browsing in private mode, and visit page [a]
- Now visit page [b]. Because you visited page [a] first, you will be automatically redirected
In a Firefox etc, clearing cookies stops this redirection from taking place.
However in my QtWebEngine browser, the redirect still happens, even though it's not saving cookies.
This means that the website somehow still knows I've visited [a] first. How?!?
Possible explanations
- Cookies are still being saved - This seems unlikely. I've tested this by spitting out a QMessageBox whenever a cookie is saved. With cookies blocked, those message boxes don't appear, suggesting the filter is working as intended.
- Websites can track the browser using another method apart from cookies - No idea what this could be. But whatever it is, closing the browser and launching a new one blocks it from happening.
Relevant code
view = std::make_unique<QWebEngineView>(this); profile = std::make_unique<QWebEngineProfile>();//Creates an off the record profile page = std::make_unique<QWebEnginePage>(profile.get(), this); view->setPage(page.get()); connect(view.get(), SIGNAL(loadFinished(bool)), SLOT(onLoadFinished(bool))); setCentralWidget(view.get()); //Disables cookies view->page()->profile()->cookieStore()->setCookieFilter( [](const QWebEngineCookieStore::FilterRequest &request) { return false; } ); view->load(url);
System info
- Qt 5.13.2, x64, using the prebuilt binaries from the Qt website
- Compiling using Visual Studio 2017, running on Windows 10