Virtual Reality

Why is Stack Overflow trying to start audio?

Why is Stack Overflow trying to start audio?

The ad is attempting to use the Audio API as one of literally hundreds of pieces of data it is collecting about your browser in an attempt to “fingerprint” it, to uniquely identify you across sites despite your privacy settings.

This isn’t general speculation; I’ve spent the last half hour going though the source code you linked above, and it goes to considerable lengths to de-anonymize viewers. Your browser may be blocking this particular API, but it’s not blocking most of the data.

I’ve included several examples below. To be absolutely clear, this logic is not being used for legitimate feature detection. The results of these checks are not used to enable/disable parts of the ad; they’re only used in aggregate to generate a user fingerprint, which the ad includes along with the advertising ID when recording analytics for the publisher.

It detects your system’s resolution and accessibility settings.

function "==typeof matchMedia&&a239.a341.a77 ("
all and(min--moz - device - pixel - ratio: 0) and(min - resolution: .001 dpcm)
")},function(){return"
function "==typeof matchMedia&&a239.a341.a77 ("
all and(-moz - images - in -menus: 0) and(min - resolution: .001 dpcm)
")},function(){return"
function "==typeof matchMedia&&a239.a341.a77 ("
screen and(-ms - high - contrast: active) and(-webkit - min - device - pixel - ratio: 0), (-ms - high - contrast: none) and(-webkit - min - device - pixel - ratio: 0)
")},function(){return"
function "==typeof matchMedia&&a239.a341.a77 ("
screen and(-webkit - min - device - pixel - ratio: 0)
")},function(){return"

It looks for the presence of vendor-specific cryptography APIs,

return "function" == typeof MSCredentials && a239.a341.a66(MSCredentials)
    }, function() {
        return "function" == typeof MSFIDOSignature && a239.a341.a66(MSFIDOSignature)
    }, function() {
        return "function" == typeof MSManipulationEvent && a239.a341.a66(MSManipulationEvent)
    }, function() {

It looks at the list of fonts you have installed.

    return "object" == typeof document && a239.a341.a68("fonts", document.fonts)

It detects which Audio API capabilities your browser supports.

    return "undefined" != typeof window && "undefined" !== window.StereoPatternNode && a239.a341.a66(window.StereoPannerNode)

It detects which mobile browser-specific APIs you support.

    return "function" == typeof AppBannerPromptResult && a239.a341.a66(AppBannerPromptResult)

It checks for platform-specific DRM support.

}, function() {
    return !!a239.a341.a72() && a239.a341.a66(a239.a341.a72().webkitGenerateKeyRequest) && a239.a341.a66(a239.a341.a72().webkitCancelKeyRequest) && a239.a341.a66(a239.a341.a72().webkitSetMediaKeys) && a239.a341.a66(a239.a341.a72().webkitAddKey)
}, function() {

It detects a hundred other things but this post is long enough.

Use an ad blocker!

Read More

Related posts

Day of the Tentacle

admin2 admin2

Gift Guide: Gifts for the commuters in your life

admin2 admin2

What is Andela, the Africa tech talent accelerator?

admin2 admin2

Leave a Reply