Π€ΠΎΠ½Π΄Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π³ΠΎ прСтстави Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ Π·Π° прСлистувач JShelter Π·Π° Π΄Π° Π³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ JavaScript API

Π€ΠΎΠ½Π΄Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° слободСн софтвСр Π³ΠΎ прСтстави ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ JShelter, кој Ρ€Π°Π·Π²ΠΈΠ²Π° Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊ Π·Π° прСлистувач Π·Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ Π·Π°ΠΊΠ°Π½ΠΈ ΠΊΠΎΠΈ сС Ρ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ ΠΏΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° JavaScript Π½Π° Π²Π΅Π±-Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ скриСна ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, слСдСњС двиТСња ΠΈ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π° Π½Π° кориснички ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. ΠšΠΎΠ΄ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сС дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° GPLv3. Π”ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π·Π° Firefox, Google Chrome, Opera, Brave, Microsoft Edge ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ прСлистувачи Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΌΠΎΡ‚ΠΎΡ€ΠΎΡ‚ Chromium.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΊΠ°ΠΊΠΎ Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠ° ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚ΠΈΠ²Π° финансирана ΠΎΠ΄ Π€ΠΎΠ½Π΄Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° НЛнСт. ΠΠΎΡ€ΡŸΠΎ МаонС, ΠΊΡ€Π΅Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ NoScript, ΠΊΠ°ΠΊΠΎ ΠΈ основачитС Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ J++ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ JS-Shield ΠΈ JavaScript Restrictor, исто Ρ‚Π°ΠΊΠ° сС ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΈΡ˜Π° Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° JShelter. Како основа Π·Π° Π½ΠΎΠ²ΠΈΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ сС користи Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ JavaScript Restrictor.

JShelter ΠΌΠΎΠΆΠ΅ Π΄Π° сС смСта ΠΊΠ°ΠΊΠΎ Π΅Π΄Π΅Π½ Π²ΠΈΠ΄ Π·Π°ΡˆΡ‚ΠΈΡ‚Π΅Π½ Ρ•ΠΈΠ΄ Π·Π° JavaScript програмски ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ достапни Π·Π° Π²Π΅Π±-страницитС ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅. Π”ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π½ΠΈΠ²ΠΎΠ° Π½Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π°, ΠΊΠ°ΠΊΠΎ ΠΈ флСксибилСн Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π·Π° пристап Π΄ΠΎ API. Нивото Π½ΡƒΠ»Π° цСлосно ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° пристап Π΄ΠΎ ситС API, ΠΏΡ€Π²ΠΎΡ‚ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°ΡšΠ΅ ΡˆΡ‚ΠΎ Π½Π΅ ја Π½Π°Ρ€ΡƒΡˆΡƒΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° страницитС, Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ балансира ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Π±Π»ΠΎΠΊΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΈ компатибилноста, Π° Ρ‡Π΅Ρ‚Π²Ρ€Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° строго Π±Π»ΠΎΠΊΠΈΡ€Π°ΡšΠ΅ Π½Π° сС ΡˆΡ‚ΠΎ Π΅ Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ.

ΠŸΠΎΡΡ‚Π°Π²ΠΊΠΈΡ‚Π΅ Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°ΡšΠ΅ Π½Π° API ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π°Ρ‚ со ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅Ρ‡Π½ΠΈ Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΡˆΡ‚ΠΈΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС зајакнС Π·Π° Π½Π΅ΠΊΠΎΠΈ Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΄Π° сС ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ исто Ρ‚Π°ΠΊΠ° сСлСктивно Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚Π΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ JavaScript ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ, ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΈ ΠΌΠ΅Π½ΡƒΠ²Π°Ρ‚Π΅ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ врСдности (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΡƒΠ²Π°Ρ‚Π΅ Π»Π°ΠΆΠ½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° систСмот). ПосСбна карактСристика Π΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΡ‚ NBS (Network boundary shield), кој Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π° страницитС Π΄Π° Π³ΠΎ користат прСлистувачот ΠΊΠ°ΠΊΠΎ прокси ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΈ (ситС појдовни Π±Π°Ρ€Π°ΡšΠ° сС прСсрСтнати ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ).

Π‘Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈ ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ API:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp ΠΈ VRFrameData.prototype.timestamp - Ρ‚ΠΎΡ‡Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС искористи Π·Π° Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ ΠΈ Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠ°Ρ‚ Π½Π°ΠΏΠ°Π΄ΠΈ ΠΎΠ΄ страничниот ΠΊΠ°Π½Π°Π» .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - сС користи Π·Π° ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° карактСристикитС Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΠΎΡ‚ потсистСм ΠΏΡ€ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° корисник.
  • AudioBuffer ΠΈ AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData. Π½Π° Π°ΡƒΠ΄ΠΈΠΎ сигнали.
  • WebGLRenderingContext - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΏΡ€Π΅ΠΊΡƒ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° карактСристикитС Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΠΎΡ‚ стСк ΠΈ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈΠΎΡ‚ процСсор.
  • MediaDevices.prototype.enumerateDevices - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° со добивањС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ имиња Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π°Ρ‚Π° ΠΈ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ΠΎΡ‚.
  • navigator.deviceMemory, navigator.hardwareConcurrency - добивањС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ…Π°Ρ€Π΄Π²Π΅Ρ€ΠΎΡ‚.
  • XMLHttpRequest (XHR) - Π³ΠΈ прСнСсува собранитС систСмски ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ сСрвСр ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС Π²Ρ‡ΠΈΡ‚Π° страницата.
  • ArrayBuffer - ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° микроархитСктонски Π½Π°ΠΏΠ°Π΄ΠΈ Spectre.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π°ΠΏΠ°Π΄ΠΈ ΠΊΠΎΠΈ Π³ΠΈ ΠΎΡ†Π΅Π½ΡƒΠ²Π°Π°Ρ‚ Π΄ΠΎΡ†Π½Π΅ΡšΠ°Ρ‚Π° ΠΏΡ€ΠΈ пристап Π΄ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.
  • API Π·Π° Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° (navigator.geolocation) - пристап Π΄ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° (Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΈ искривитС Π²Ρ€Π°Ρ‚Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ).
  • Gamepad API (navigator.getGamepads()) Π΅ Π΅Π΄Π΅Π½ ΠΎΠ΄ Π·Π½Π°Ρ†ΠΈΡ‚Π΅ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΡˆΡ‚ΠΎ Π³ΠΎ Π·Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ присуството Π½Π° gamepad Π²ΠΎ систСмот.
  • Virtual Reality API, Mixed Reality API - ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° ΡƒΡ€Π΅Π΄ΠΎΡ‚ Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° рСалност Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°.
  • ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†.ΠΈΠΌΠ΅ - ΠΏΡ€ΠΎΡ‚Π΅ΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° вкрстСни Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ.
  • navigator.sendBeacon - сС користи Π·Π° Π²Π΅Π±-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€