WeakestBanEvader
Newbie
- Jun 23, 2024
- 2
- 4
I was recently permabanned from reddit. I'm not gonna say much about it, but the reason was supposedly ban evasion, from a subreddit I've never been banned from. As a result, I looked into how to avoid the fingerprinting that caused any new profile I made to be banned.
It is dead simple. Reddit serves you a static javasacript file called reddit-init.en.{some id}.js. This file contains a function called "Fingerprint2". It checks certain things, like userAgent, your installed fonts, resolution, language, typical fingerprinting stuff.
By altering any of the values this function checks, you'll alter your fingerprint, as the function generates a fingerprint by hashing all the returned values from all its checks. You also have to clear your localStorage, as the fingerprint is cached there.
By using a usescript plugin like tampermonkey, and setting the usescript to run immediately upon page start, you can spoof your fingerprint by, for example, appending a character to your userAgent string.
This is all you need:
(function() {
'use strict';
localStorage.clear();
Object.defineProperty(navigator, "userAgent", { value: navigator.userAgent + " yeah, suck my dick, reddit" });
})
And that's the story of how I avoided reddit's permaban.
You can use this to avoid having your accounts associated with each other, potentially avoiding losing them all if you get a site ban. Coupled with a VPN, and randomizing the appended value, you can create more reddit accounts than you'll ever need. I recommend you check out the Function yourself to see which other values can be changed to spoof the fingerprint. There are several. navigator.language/navigator.languages might be a better pick, but those two properties have to match, so it's a bit more code.
It is dead simple. Reddit serves you a static javasacript file called reddit-init.en.{some id}.js. This file contains a function called "Fingerprint2". It checks certain things, like userAgent, your installed fonts, resolution, language, typical fingerprinting stuff.
By altering any of the values this function checks, you'll alter your fingerprint, as the function generates a fingerprint by hashing all the returned values from all its checks. You also have to clear your localStorage, as the fingerprint is cached there.
By using a usescript plugin like tampermonkey, and setting the usescript to run immediately upon page start, you can spoof your fingerprint by, for example, appending a character to your userAgent string.
This is all you need:
(function() {
'use strict';
localStorage.clear();
Object.defineProperty(navigator, "userAgent", { value: navigator.userAgent + " yeah, suck my dick, reddit" });
})
And that's the story of how I avoided reddit's permaban.
You can use this to avoid having your accounts associated with each other, potentially avoiding losing them all if you get a site ban. Coupled with a VPN, and randomizing the appended value, you can create more reddit accounts than you'll ever need. I recommend you check out the Function yourself to see which other values can be changed to spoof the fingerprint. There are several. navigator.language/navigator.languages might be a better pick, but those two properties have to match, so it's a bit more code.