• RaoulDook@lemmy.world
    link
    fedilink
    English
    arrow-up
    75
    ·
    3 days ago

    More sneaky spyware bullshit causing problems as a side effect of its primary nefariousness

    • deadcream@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      34
      ·
      3 days ago

      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.

    • Buddahriffic@lemmy.world
      link
      fedilink
      English
      arrow-up
      17
      ·
      3 days ago

      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.

  • spaghettiwestern@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    10
    ·
    3 days ago

    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.

  • Riskable@programming.dev
    link
    fedilink
    English
    arrow-up
    16
    arrow-down
    7
    ·
    3 days ago

    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.

    • fubarx@lemmy.world
      link
      fedilink
      English
      arrow-up
      48
      ·
      edit-2
      3 days ago

      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.

      • Riskable@programming.dev
        link
        fedilink
        English
        arrow-up
        7
        ·
        3 days ago

        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.

    • tal@lemmy.today
      link
      fedilink
      English
      arrow-up
      11
      arrow-down
      1
      ·
      3 days ago

      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.

    • PierceTheBubble@lemmy.ml
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 days ago

      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.