js-shield
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Wrapper groups


From: Libor Polčák
Subject: Wrapper groups
Date: Thu, 12 Aug 2021 15:15:52 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.8.1

Hello,

to simplify the configuration of the extension, I think we should create 
categories of wrappers. See below the proposed categories and proposed 
configuration values that will be displayed to the user.

Wrappers of proposed group Fake fingerprint values:
                        parent_object: "navigator.getBattery",
                        parent_object: "navigator.deviceMemory",
                        parent_object: "HTMLCanvasElement.prototype",
                        parent_object_property: "toDataURL",
                        parent_object: "CanvasRenderingContext2D.prototype",
                        parent_object_property: "getImageData",
                        parent_object: "HTMLCanvasElement.prototype",
                        parent_object_property: "toBlob",
                        parent_object: "OffscreenCanvas.prototype",
                        parent_object_property: "convertToBlob",
                        parent_object: "CanvasRenderingContext2D.prototype",
                        parent_object_property: "isPointInPath",
                        parent_object: "CanvasRenderingContext2D.prototype",
                        parent_object_property: "isPointInStroke",
                        parent_object: "window",
                        parent_object_property: "name",
                        parent_object: "navigator",
                        parent_object_property: "hardwareConcurrency",
                        parent_object: "MediaDevices.prototype",
                        parent_object_property: "enumerateDevices",
                        parent_object: "navigator",
                        parent_object_property: "plugins",
                        parent_object: "AudioBuffer.prototype",
                        parent_object_property: "getChannelData",
                        parent_object: "AudioBuffer.prototype",
                        parent_object_property: "copyFromChannel",
                        parent_object: "AnalyserNode.prototype",
                        parent_object_property: "getByteTimeDomainData",
                        parent_object: "AnalyserNode.prototype",
                        parent_object_property: "getFloatTimeDomainData",
                        parent_object: "AnalyserNode.prototype",
                        parent_object_property: "getByteFrequencyData",
                        parent_object: "AnalyserNode.prototype",
                        parent_object_property: "getFloatFrequencyData",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getParameter",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getParameter",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getSupportedExtensions",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getSupportedExtensions",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getActiveAttrib",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getActiveAttrib",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getExtension",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getExtension",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getActiveUniform",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getActiveUniform",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getUniformLocation",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getUniformLocation",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getAttribLocation",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getAttribLocation",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getVertexAttribOffset",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getVertexAttribOffset",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "readPixels",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "readPixels",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: 
"getFramebufferAttachmentParameter",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: 
"getFramebufferAttachmentParameter",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getBufferParameter",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getBufferParameter",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getProgramParameter",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getProgramParameter",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getRenderbufferParameter",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getRenderbufferParameter",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getShaderParameter",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getShaderParameter",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getVertexAttrib",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getVertexAttrib",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getUniform",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getUniform",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getTexParameter",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getTexParameter",
                        parent_object: "WebGLRenderingContext.prototype",
                        parent_object_property: "getShaderPrecisionFormat",
                        parent_object: "WebGL2RenderingContext.prototype",
                        parent_object_property: "getShaderPrecisionFormat",
Proposed configuration values: off/white lies/on


Wrappers of proposed group Data upload:
                        parent_object: "window.XMLHttpRequest", (This was added 
as experimental, do we want to keep
                        the wrapper because the same behaviour coud be achieved 
by calling unwrapped fetch API and
                        other APIs. If we want to keep the protection, do we 
use Web Request API instead. What about
                        manifest v3?)
                        parent_object: "navigator.sendBeacon",
Proposed configuration values: off/on


Wrappers of proposed group Microarchitectual attack protection:
                        parent_object: 'window.DataView',
                parent_object: 'window',
                parent_object_property: ''Uint8Array', 'Int8Array', 
'Uint8ClampedArray', 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', 
'Float32Array', 'Float64Array'',
                        parent_object: "window",
                        parent_object_property: "SharedArrayBuffer",
                        parent_object: "window",
                        parent_object_property: "Worker",
Proposed configuration values: off/medium/high

Wrappers of proposed group Precise time: (Do we want to merge with other 
groups?)
                        parent_object: "window",
                        parent_object_property: "Date",
                        parent_object: "Performance.prototype",
                        parent_object_property: "now",
                        parent_object: "PerformanceEntry",
                        parent_object_property: "prototype",
Proposed configuration values: full precision/medium precision/low precision

Wrappers of proposed group Real-world location precision:
                        parent_object: "navigator",
                        parent_object_property: "geolocation",
Proposed configuration values: provide accurate data/hundreds of 
meters/kilometers/tens of
kilometers/hundreds of kilometers/location services off



Additional functionality to display in the redesigned pop up:
Network boundary shield (on/off)
Fingeprinting detection (off/low/medium/high)



Open issues:

* Do we want to let the user configure what a specific level means. Like does 
XHR
protection on means no XHR or ask before each XHR?

* What about wrappers that do not support white lies - do we want to display 
medium protection
 instead?

Please let me know your thoughts.

Best

Libor




reply via email to

[Prev in Thread] Current Thread [Next in Thread]