Weqfa Çavkaniya Vekirî pêveka geroka JShelter destnîşan kir ku API-ya JavaScript-ê sînordar bike

Weqfa Nermalava Azad projeya JShelter destnîşan kir, ku pêvekek gerokê pêş dixe da ku li hember xetereyên ku dema JavaScript-ê li ser malperan bikar tînin biparêze, di nav de nasnameya veşartî, şopandina tevger û berhevkirina daneyên bikarhêner. Koda projeyê di bin lîsansa GPLv3 de tê belav kirin. Pêvek ji bo Firefox, Google Chrome, Opera, Brave, Microsoft Edge û gerokên din ên li ser motora Chromium têne amadekirin.

Proje wekî înîsiyatîfek hevpar ku ji hêla Weqfa NLnet ve hatî fînanse kirin tê pêşve xistin. Giorgio Maone, afirînerê pêveka NoScript, û her weha damezrînerên projeya J++ û nivîskarên pêvekên JS-Shield û JavaScript Restrictor jî beşdarî pêşkeftina JShelter bûn. Pêveka JavaScript Restrictor wekî bingehek ji bo projeya nû tê bikar anîn.

JShelter dikare wekî celebek dîwarê agir ji bo navgînên bernamesaziya JavaScript-ê ku ji malper û serîlêdanên malperê re peyda dibe were hesibandin. Pêvek çar astên parastinê peyda dike, û her weha ji bo gihîştina API-ê moda veavakirinê ya maqûl peyda dike. Asta zero bi tevahî destûrê dide gihîştina hemî API-yan, ya yekem astengkirina hindiktirîn ku xebata rûpelan têk nade, di asta duyemîn de di navbera astengkirin û hevahengiyê de hevseng dike, û asta çaremîn jî astengkirina hişk a her tiştê nepêwîst vedihewîne.

Mîhengên astengkirina API-ê dikare bi malperên kesane ve were girêdan, mînakî, parastin dikare ji bo hin malperan were xurt kirin, û ji bo yên din jî were asteng kirin. Her weha hûn dikarin bi bijartî hin rêbazên JavaScript, tişt, taybetmendî û fonksiyonan asteng bikin, an nirxên vegerê biguhezînin (mînak, agahdariya derewîn li ser pergalê hilberînin). Taybetmendiyek cihêreng moda NBS (Mertalê sînorê torê) ye, ku rê nade rûpelan ku gerokê wekî navgînek di navbera torên derveyî û herêmî de bikar bînin (hemî daxwazên derketinê têne girtin û analîz kirin).

API-yên astengkirî an sînorkirî:

  • window.Date, window.performance.now (), pace. .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - ji bo destnîşankirina taybetmendiyên jêrpergala grafîkê dema ku bikarhênerek nas dike tê bikar anîn.
  • AudioBuffer û AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyFrequencyFromChannel(û AnalyserNode. ji sînyalên deng.
  • WebGLRenderingContext - Nasname bi analîzkirina taybetmendiyên stûna grafîkê û GPU.
  • MediaDevices.prototype.enumerateDevices - Nasname bi wergirtina parametre û navên kamera û mîkrofonê.
  • navigator.deviceMemory, navigator.hardwareConcurrency - bidestxistina agahiyê li ser hardware.
  • XMLHttpRequest (XHR) - piştî ku rûpel tê barkirin, agahdariya pergalê ya berhevkirî vediguhezîne serverek derveyî.
  • ArrayBuffer - êrîşên Specter mîkroarchitectural pêk tîne.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - pêkanîna êrîşan ku dema gihîştina daneyan dereng dinirxîne.
  • Geolocation API (navigator.geolocation) - gihîştina agahdariya cîhê (zêdebûn destûrê dide te ku hûn daneyên hatî vegerandin xirab bikin).
  • Gamepad API (navigator.getGamepads()) yek ji wan nîşanên nasnameyê ye ku hebûna lîstikek di pergalê de hesab dike.
  • API-ya Rastiya Virtual, API-ya Rastiya Mixed - karanîna pîvanên cîhaza rastiya virtual ji bo nasnameyê.
  • window.name - leaksên cross-site.
  • navigator.sendBeacon - ji bo analîzên malperê tê bikar anîn.

Source: opennet.ru

Add a comment