Open Source Foundation ilianzisha programu jalizi ya kivinjari cha JShelter ili kupunguza API ya JavaScript

Free Software Foundation ilianzisha mradi wa JShelter, ambao hutengeneza programu-jalizi ya kivinjari ili kulinda dhidi ya vitisho vinavyotokea wakati wa kutumia JavaScript kwenye tovuti, ikiwa ni pamoja na utambulisho uliofichwa, ufuatiliaji wa harakati na mkusanyiko wa data ya mtumiaji. Msimbo wa mradi unasambazwa chini ya leseni ya GPLv3. Programu jalizi imetayarishwa kwa Firefox, Google Chrome, Opera, Brave, Microsoft Edge na vivinjari vingine kulingana na injini ya Chromium.

Mradi huo unaendelezwa kama mpango wa pamoja unaofadhiliwa na Wakfu wa NLnet. Giorgio Maone, muundaji wa nyongeza ya NoScript, na pia waanzilishi wa mradi wa J++ na waandishi wa nyongeza za JS-Shield na JavaScript Restrictor, pia walijiunga na ukuzaji wa JShelter. Programu jalizi ya JavaScript Restrictor inatumika kama msingi wa mradi mpya.

JShelter inaweza kuzingatiwa kama aina ya ngome ya miingiliano ya programu ya JavaScript inayopatikana kwa wavuti na programu za wavuti. Nyongeza hutoa viwango vinne vya ulinzi, pamoja na hali ya usanidi inayoweza kunyumbulika kwa ufikiaji wa API. Ngazi ya sifuri inaruhusu kabisa upatikanaji wa API zote, ya kwanza inajumuisha kuzuia ndogo ambayo haisumbui uendeshaji wa kurasa, usawa wa ngazi ya pili kati ya kuzuia na utangamano, na ngazi ya nne inajumuisha kuzuia kali kwa kila kitu kisichohitajika.

Mipangilio ya kuzuia API inaweza kuunganishwa kwa tovuti binafsi, kwa mfano, ulinzi unaweza kuimarishwa kwa baadhi ya tovuti, na kuzimwa kwa zingine. Unaweza pia kuzuia baadhi ya mbinu za JavaScript, vipengee, sifa na utendaji, au kubadilisha thamani za kurejesha (kwa mfano, kutoa taarifa za uongo kuhusu mfumo). Kipengele tofauti ni modi ya NBS (Network boundary shield), ambayo hairuhusu kurasa kutumia kivinjari kama wakala kati ya mitandao ya nje na ya ndani (maombi yote yanayotoka huingiliwa na kuchambuliwa).

API zilizozuiwa au zilizowekewa vikwazo:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp na VRFrameData.prototype.timestamp - muda kamili unaotoka unaweza kutumika kutambua na kutekeleza mashambulizi ya idhaa ya kando. .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - hutumika kubainisha vipengele vya mfumo mdogo wa michoro wakati wa kutambua mtumiaji.
  • AudioBuffer na AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData()na Get
  • WebGLRenderingContext - kitambulisho kupitia uchanganuzi wa vipengele vya mrundikano wa michoro na GPU.
  • MediaDevices.prototype.enumerateDevices - kitambulisho kwa kupata vigezo na majina ya kamera na kipaza sauti.
  • navigator.deviceMemory, navigator.hardwareConcurrency - kupata taarifa kuhusu maunzi.
  • XMLHttpRequest (XHR) - huhamisha taarifa za mfumo zilizokusanywa kwa seva ya nje baada ya ukurasa kupakiwa.
  • ArrayBuffer - kufanya mashambulizi ya Specter ya usanifu mdogo.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - kutekeleza mashambulizi ambayo hutathmini ucheleweshaji wakati wa kufikia data.
  • API ya Geolocation (navigator.geolocation) - upatikanaji wa maelezo ya eneo (nyongeza inakuwezesha kupotosha data iliyorejeshwa).
  • API ya Gamepad (navigator.getGamepads()) ni mojawapo ya ishara za utambulisho zinazozingatia uwepo wa gamepad kwenye mfumo.
  • API ya Uhalisia Pepe, API ya Uhalisia Mchanganyiko - matumizi ya vigezo vya kifaa cha uhalisia pepe kwa ajili ya utambuzi.
  • window.name - uvujaji wa tovuti ya msalaba.
  • navigator.sendBeacon - hutumika kwa uchanganuzi wa wavuti.

Chanzo: opennet.ru

Kuongeza maoni