Partially, the definition of an anti detect browser is given by the name itself. Each regular browser (say Chrome or Firefox) has its own online identity. We call this a fingerprint. The way your browser is fingerprinted is very complex. It has to do with things like:
- Your IP address
- The User Agent you’re sending with your requests
- Properties of your browsers
Now, the last one is the most important I would say. That is because anyone on the internet can build a relatively simple script to get certain properties of a browser. And what is most important is that almost every time, combining these values generates a unique system configuration. In practice, one can generate a hash of the stringified combined values of these properties and create a fingerprint. Take for example FingerprintJS or CreepJS.
Furthermore, detection is not window scoped. I even created this tool that can detect evasions such as the ones implemented with `puppeteer-extra-plugin-stealth` by comparing values gathered from the window and workers. But that is a more complex discussion. For now, it seems that the best way to go undetected online is to use an anti detect browser.
And we’re back to the topic. Antidetect browsers are applications based on known browsers that have been modified to accept custom values for the properties we discussed earlier. Because projects like Chromium or Mozilla are open source, anyone can fork them and create their own version of a browser. And that is exactly what happens with anti detect browsers too.
You too can clone Chromium for example and tweak it to serve random values for various properties of the browser. But in practice, this requires lots of knowledge and resources. That’s why there are some known vendors and we’ll get to them in just a moment. But first: