Free Software Foundation kynnti JShelter verkefnið, sem þróar vafraviðbót til að verjast ógnum sem koma upp þegar JavaScript er notað á vefsíðum, þar á meðal falinn auðkenningu, rekja hreyfingar og uppsöfnun notendagagna. Verkefniskóðanum er dreift undir GPLv3 leyfinu. Viðbótin er útbúin fyrir Firefox, Google Chrome, Opera, Brave, Microsoft Edge og aðra vafra sem byggja á Chromium vélinni.
Verkefnið er þróað sem sameiginlegt framtak styrkt af NLnet Foundation. Giorgio Maone, skapari NoScript viðbótarinnar, sem og stofnendur J++ verkefnisins og höfundar JS-Shield og JavaScript Restrictor viðbætur, tóku einnig þátt í þróun JShelter. JavaScript Restrictor viðbótin er notuð sem grunnur fyrir nýja verkefnið.
Líta má á JShelter sem eins konar eldvegg fyrir JavaScript forritunarviðmót sem eru í boði fyrir vefsíður og vefforrit. Viðbótin veitir fjögur verndarstig, auk sveigjanlegrar stillingar fyrir aðgang að API. Stig núll leyfir algjörlega aðgang að öllum API, það fyrsta felur í sér lágmarksblokkun sem truflar ekki virkni síðna, annað stig jafnvægi á milli lokunar og eindrægni og fjórða stigið inniheldur stranga lokun á öllu óþarfa.
Hægt er að tengja stillingar fyrir API-blokkun við einstakar síður, til dæmis er hægt að styrkja vernd á sumum vefsvæðum og slökkva á öðrum. Þú getur einnig valið lokað á ákveðnar JavaScript aðferðir, hluti, eiginleika og aðgerðir eða breytt skilagildum (til dæmis, framleitt rangar upplýsingar um kerfið). Sérstakur eiginleiki er NBS-hamurinn (Network boundary shield), sem gerir síðum ekki kleift að nota vafrann sem umboð á milli ytri og staðbundinna neta (allar beiðnir sem berast eru hleraðar og greindar).
Lokuð eða takmörkuð API:
- window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp og VRFrameData.prototype.timestamp - nákvæman tímaúttak er hægt að nota til að bera kennsl á og framkvæma hliðarárásir .
- HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - notað til að ákvarða eiginleika grafíkundirkerfisins þegar notandi er auðkenndur.
- AudioBuffer og AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() og AnalyserNode.getidentaFloat í gegnum tíðni hljóðmerkjagreiningu.
- WebGLRenderingContext - auðkenning með greiningu á eiginleikum grafíkstafla og GPU.
- MediaDevices.prototype.enumerateDevices - auðkenning með því að fá færibreytur og nöfn myndavélarinnar og hljóðnemans.
- navigator.deviceMemory, navigator.hardwareConcurrency - að afla upplýsinga um vélbúnað.
- XMLHttpRequest (XHR) - flytur safnaðar kerfisupplýsingar á ytri netþjón eftir að síðan hefur verið hlaðið.
- ArrayBuffer - framkvæmir örarkitektúral Specter árásir.
- WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - framkvæma árásir sem meta tafir við aðgang að gögnum.
- Geolocation API (navigator.geolocation) - aðgangur að staðsetningarupplýsingum (viðbótin gerir þér kleift að afbaka skilað gögn).
- Gamepad API (navigator.getGamepads()) er eitt af auðkenningarmerkjunum sem tekur tillit til tilvistar gamepad í kerfinu.
- Virtual Reality API, Mixed Reality API - notkun sýndarveruleikatækifæris til auðkenningar.
- window.name - leki yfir vefsvæði.
- navigator.sendBeacon - notað fyrir vefgreiningar.
Heimild: opennet.ru