BotBrowser Knowledge Hub — Page 13
Browse page 13 of BotBrowser articles on browser fingerprint protection, privacy signals, proxy consistency, and deployment.
fingerprint
DataView: Endianness, Alignment and Bounds
One probe on fixed buffers: the default byte order, unaligned reads, bounds errors, float precision, shared buffers, offset views and the BigInt getters.
Read article →fingerprint
ICU Timezone Aliases and the TZ You Actually Report
Ask ICU which timezone identity a page really reads: how aliases collapse, when TZ wins, and why a fixed offset matches a DST zone in January and diverges in July.
Read article →fingerprint
Microtasks and Timers: The Order Your Code Actually Runs
One ordering probe: sync code finishes first, promise callbacks drain in queue order, nested microtasks wait, await resumes as a microtask, and a timer never preempts a loop.
Read article →fingerprint
Object Key Order: Integer Keys Sort, String Keys Stay
Build objects with mixed keys: integer keys sort ascending, string keys keep insertion order, which keys count as integers, and how JSON, Map, for-in and spread follow the order.
Read article →fingerprint
Promise Combinators: What Fails First
Two probes on fixed shapes: all stops at the first rejection, allSettled reports every outcome in input order, any aggregates errors, and an empty race never settles.
Read article →fingerprint
Proxy Traps and the Invariants the Runtime Enforces
One probe on fixed traps: which traps fire, which answers the runtime rejects with a TypeError, and what a revoked or non-callable proxy does.
Read article →fingerprint
RegExp lastIndex and Flags: The State That Flips Answers
Run a pattern through test, exec and matchAll: how lastIndex advances under global and sticky flags, why a reused global pattern flips its answer, and how unicode counts.
Read article →fingerprint
structuredClone vs JSON: What a Deep Copy Actually Keeps
Run structuredClone and a JSON round trip over dates, maps, sets, NaN, BigInt, cycles and shared references to see what each keeps, changes, rejects or silently drops.
Read article →fingerprint
TextDecoder and TextEncoder: Bytes vs Strings
Decode fixed bytes under several labels: which alias, how a BOM and a bad byte behave, why a chunk split drops a character, and why byte and string length differ.
Read article →fingerprint
ua-parser-js: Client Hints, Bots and a 500-Char Cap
Run the pinned ua-parser-js bundle over fixed user agents and Client Hints to see which identity it reports, which markers it drops, and how a 500-character cap hides a bot token.
Read article →fingerprint
Unicode Normalization: Four Text Identities a Page Reads
Run the host ICU over precomposed, decomposed, emoji and Hangul strings to see the four different lengths a page can read for the same visible text, and why a key match fails.
Read article →fingerprint
URL Parsing and Search Params: What Round Trips Change
Parse odd URLs and query strings to see where new URL throws, what normalisation rewrites, how duplicate keys, plus signs and sort order behave, and why a set is not an assignment.
Read article →