Open Source Foundation прСдстави JShelter Π΄ΠΎΠ±Π°Π²ΠΊΠ° Π·Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€, Π·Π° Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ JavaScript API

Ѐондацията Π·Π° свободСн софтуСр прСдстави ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° JShelter, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Π΄ΠΎΠ±Π°Π²ΠΊΠ° Π·Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Π·Π°ΠΏΠ»Π°Ρ…ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° JavaScript Π½Π° уСбсайтовС, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ скрита идСнтификация, прослСдяванС Π½Π° двиТСния ΠΈ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Π½Π΅ Π½Π° потрСбитСлски Π΄Π°Π½Π½ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· GPLv3. Π”ΠΎΠ±Π°Π²ΠΊΠ°Ρ‚Π° Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° Π·Π° Firefox, Google Chrome, Opera, Brave, Microsoft Edge ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° двигатСля Chromium.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π°, финансирана ΠΎΡ‚ фондация NLnet. Giorgio Maone, ΡΡŠΠ·Π΄Π°Ρ‚Π΅Π» Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠ°Ρ‚Π° 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() ΠΈ AnalyserNode.getFloatFrequencyData()) - идСнтификация Ρ‡Ρ€Π΅Π· Π°Π½Π°Π»ΠΈΠ· Π½Π° Π°ΡƒΠ΄ΠΈΠΎ сигнали.
  • WebGLRenderingContext - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Π°Π½Π°Π»ΠΈΠ· Π½Π° характСристикитС Π½Π° графичния стСк ΠΈ GPU.
  • MediaDevices.prototype.enumerateDevices - идСнтификация Ρ‡Ρ€Π΅Π· ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π°Ρ‚Π° ΠΈ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°.
  • navigator.deviceMemory, navigator.hardwareConcurrency - ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° информация Π·Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π°.
  • XMLHttpRequest (XHR) - ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ ΡΡŠΠ±Ρ€Π°Π½Π°Ρ‚Π° систСмна информация към външСн ΡΡŠΡ€Π²ΡŠΡ€, слСд ΠΊΠ°Ρ‚ΠΎ страницата сС Π·Π°Ρ€Π΅Π΄ΠΈ.
  • ArrayBuffer - ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ Spectre Π°Ρ‚Π°ΠΊΠΈ.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ оцСняват забавянията ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ.
  • API Π·Π° гСолокация (navigator.geolocation) - Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ информация Π·Π° мСстополоТСниС (Π΄ΠΎΠ±Π°Π²ΠΊΠ°Ρ‚Π° Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΊΡ€ΠΈΠ²ΠΈΡ‚Π΅ Π²ΡŠΡ€Π½Π°Ρ‚ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ).
  • API Π½Π° Π³Π΅ΠΉΠΌΠΏΠ°Π΄Π° (navigator.getGamepads()) Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ†ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π³Π΅ΠΉΠΌΠΏΠ°Π΄ Π² систСмата.
  • API Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° рСалност, API Π·Π° смСсСна рСалност - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° устройството Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° рСалност Π·Π° идСнтификация.
  • window.name - Ρ‚Π΅Ρ‡ΠΎΠ²Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ сайтовС.
  • navigator.sendBeacon - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС Π·Π° ΡƒΠ΅Π± Π°Π½Π°Π»ΠΈΠ·ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€