I whakauruhia e te Open Source Foundation te taapiri tirotiro JShelter hei whakawhāiti i te API JavaScript

I whakauruhia e te Free Software Foundation te kaupapa JShelter, e whakawhanake ana i te taapiri tirotiro hei tiaki i nga riri ka puta mai i te wa e whakamahi ana i te JavaScript i runga i nga paetukutuku, tae atu ki te tautuhi huna, te aroturuki i nga nekehanga me te kohinga o nga raraunga kaiwhakamahi. Ka tohatohahia te waehere kaupapa i raro i te raihana GPLv3. Kua rite te taapiri mo Firefox, Google Chrome, Opera, Brave, Microsoft Edge me etahi atu tirotiro i runga i te miihini Chromium.

Kei te whakawhanakehia te kaupapa hei kaupapa mahi tahi na te NLnet Foundation i putea. Ko Giorgio Maone, te kaihanga o te taapiri NoScript, me nga kaihanga o te kaupapa J++ me nga kaituhi o nga taapiri JS-Shield me JavaScript Restrictor, i uru atu ki te whanaketanga o JShelter. Ka whakamahia te taapiri JavaScript Restrictor hei turanga mo te kaupapa hou.

Ka taea te whakaaro a JShelter he momo papangaahi mo nga atanga papatono JavaScript e waatea ana ki nga paetukutuku me nga tono paetukutuku. Ko te taapiri e whakarato ana i nga taumata whakamarumaru e wha, me te aratau whirihoranga ngawari mo te uru ki te API. Ko te taumata kore ka taea te uru atu ki nga API katoa, ko te tuatahi ko te aukati iti e kore e whakararu i te mahi o nga wharangi, ko te taumata tuarua ka whakataurite i waenga i te aukati me te hototahi, ko te taumata tuawha kei roto ko te aukati tino o nga mea katoa kaore e tika.

Ko nga tautuhinga aukati API ka taea te here ki nga waahi takitahi, hei tauira, ka taea te whakapakari i te whakamarumaru mo etahi waahi, me te haua mo etahi atu. Ka taea hoki e koe te aukati i etahi tikanga JavaScript, taonga, taonga me nga mahi, ka huri ranei i nga uara whakahoki (hei tauira, whakaputa korero teka mo te punaha). Ko tetahi ahuatanga motuhake ko te aratau NBS (whatunga rohenga whatunga), e kore e taea e nga wharangi te whakamahi i te kaitirotiro hei takawaenga i waenga i nga whatunga o waho me te rohe (ka haukotia, ka tātarihia nga tono puta katoa).

Nga API kua aukatia, kua aukatia ranei:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp me VRFrameData.prototype.timestamp - ka taea te whakamahi i te putanga wa tika ki te tautuhi me te kawe i nga whakaeke-taha .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - ka whakamahia hei whakatau i nga ahuatanga o te puunaha iti whakairoiro i te wa e tautuhi ana i tetahi kaiwhakamahi.
  • AudioBuffer me AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() me AnalyserNode.getByteTimeDomainData()
  • WebGLRenderingContext - te tautuhi ma te tātari i nga ahuatanga o te puranga whakairoiro me te GPU.
  • MediaDevices.prototype.enumerateDevices - te tautuhi ma te whiwhi tawhā me nga ingoa o te kamera me te hopuoro.
  • navigator.deviceMemory, navigator.hardwareConcurrency - te tiki korero mo te taputapu.
  • XMLHttpRequest (XHR) - ka whakawhiti i nga korero punaha kua kohia ki tetahi tūmau o waho i muri i te utaina o te wharangi.
  • ArrayBuffer - te kawe i nga whakaekenga a Specter microarchitectural.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - te kawe i nga whakaeke e arotake ana i nga wa roa ka uru ki nga raraunga.
  • Geolocation API (navigator.geolocation) - uru ki nga korero waahi (ma te taapiri ka taea e koe te whakakorikori i nga raraunga kua whakahokia mai).
  • Ko te Gamepad API (navigator.getGamepads()) tetahi o nga tohu tohu e whai whakaaro ana ki te aroaro o te papa takaro i roto i te punaha.
  • API mooni mariko, API mooni whakaranu - te whakamahi i nga tawhā taputapu mooni mariko hei tautuhi.
  • matapihi.ingoa - nga turuturu whiti-pae.
  • navigator.sendBeacon - whakamahia mo te tātari paetukutuku.

Source: opennet.ru

Tāpiri i te kōrero