More sneaky spyware bullshit causing problems as a side effect of its primary nefariousness
In a better world browsers would protect their users against shit like this.
Firefox tries but this is very hard to fight against. Most of the obvious holes were closed long ago. Now these fuckers use normal browser functionality that can’t be disabled and record how it subtly differs (in various ways like execution time of functions) between different combinations of browsers, OSes, hardware, etc. This information alone is enough to create a more or less unique fingerprint.
The only reliable solution is to completely get rid of client-side code execution like JavaScript and WebAssembly and return to static web pages. Which of course won’t happen.
Yeah, a lot of these fingerprinting capabilities seem like things that should be behind permission requests, if not outright disabled entirely.
Like ok, I get that if someone wanted to make a browser-based audio editing tool, it might be useful for javascript to be able to sample the output side after effects have been applied. But I don’t want every single fucking website to have that capability by default. I’m not even sure I want websites to be able to play audio at all without permission.
By default, it should be a one way pipeline. Whatever they put into the pipeline gets displayed or played but they can’t see any of the system-specific results. I’d prefer the standard be designing pages to work with any resolution instead of letting them query the exact pixel dimensions, which varies per device and I suspect fingerprinting was the reason they were designed like that in the first place.
Yet another reason to avoid AliExpress, as if we need more.
Their website makes it damn near impossible to make a purchase (buy 3 more for this deal!!!), changes prices when you put something in the cart, charges multiple times for shipping and then provides inaccurate tracking info once something finally ships. Last time I had a month’s delay because everything sat for more than a week in the U.S. after clearing customs.
Never again.
Trying to push you into the app I bet
They were quite successful pushing me - directly to ebay. I’d rather spend more than to ever deal with AliExpress and their BS again.
how do you handle the phone number requirement on ebay?
Honestly, this doesn’t sound like spyware. More like absurd optimization. Here’s why: Audio devices often go to sleep (to save battery) and can take a second or two to wake up. That’s enough time that the end user will miss the first second or two of audio.
By keeping the audio outputting something (even if it’s just silence), they can guarantee that their little (often hilariously terrible) product videos will play the way they expect (which is loud and startling, of course!).
This is just one of those stupid tricks that’s bad for energy use but good for ignorant users who might complain that the first second of every AliExpress video is silent 🤷
The reason why I believe this to be the case is because there’s really nothing unique or interesting to be learned from an audio output loop that’s literally sending zeros through itself. If you wanted to use that to fingerprint a user, you wouldn’t need to keep it active. You could pass a single zero (silence) through and be done.
The WebAudio test is not the only measurement in these scripts. Inspection of the bundles found code that queries or measures:
- canvas rendering and toDataURL()
- WebGL renderer information, extensions, and shader precision
- audio oscillator and analyser output
- screen and viewport dimensions
- device pixel ratio
- hardware concurrency and device memory
- installed browser plugins
- supported audio and video formats
- WebRTC behaviour
- browser performance timing
- mouse, touch, focus, and scroll events
- device motion and orientation
- properties commonly associated with browser automation
There is also code for serialising and encrypting results, making requests to Alibaba telemetry services, and sending data with fetch() or sendBeacon().
Not sure you need all this to play audio.
If it’s part of a fingerprinting lib, then they just fucked it up. Because the fingerprinting can be done in one ~16ms window of time when the script runs and then you can break down the audio objects and pretend nothing happened.
Also because browsers support OfflineAudioContext, which lets you do the same things but doesn’t try to output to speakers.
This guy fingerprints.
(hopefully in a good way)
Oh gods. I leave them everywhere 🤷
If that’s actually their problem, they could easily just play a small amount of silence before a video’s content. They don’t need to be constantly tying up an audio stream.
Audio fingerprinting works because small differences in browser versions, operating systems, audio libraries, and hardware can produce slightly different results from the same generated signal. It is not necessarily enough to uniquely identify a device by itself, but it becomes much more useful when combined with canvas, WebGL, hardware, timing, and interaction data.
The gaining happens after retrieval of the results it seems: so it’s just silent for the end user. And perhaps they do both fingerprinting, and ensure audio devices remain awake.






