Open Source Foundation JavaScript API шектеуі үшін JShelter шолғыш қондырмасын ұсынды

Free Software Foundation JShelter жобасын ұсынды, ол веб-сайттарда JavaScript пайдалану кезінде туындайтын қауіптерден, соның ішінде жасырын идентификацияны, қозғалыстарды қадағалауды және пайдаланушы деректерін жинақтауды қорғау үшін шолғыш қондырмасын әзірлейді. Жоба коды GPLv3 лицензиясы бойынша таратылады. Қосымша Firefox, Google Chrome, Opera, Brave, Microsoft Edge және Chromium қозғалтқышына негізделген басқа браузерлер үшін дайындалған.

Жоба NLnet қоры қаржыландыратын бірлескен бастама ретінде әзірленуде. NoScript қондырмасын жасаушы Джорджио Маоне, сондай-ақ J++ жобасының негізін қалаушылар және JS-Shield және JavaScript Restrictor қондырмаларының авторлары JShelter әзірлеуге қосылды. JavaScript шектеуші қосымшасы жаңа жобаның негізі ретінде пайдаланылады.

JShelter веб-сайттар мен веб-қосымшаларға қолжетімді JavaScript бағдарламалау интерфейстеріне арналған брандмауэр түрі ретінде қарастырылуы мүмкін. Қосымша төрт қорғаныс деңгейін, сондай-ақ API-ге кіру үшін икемді конфигурация режимін қамтамасыз етеді. Нөлдік деңгей барлық API интерфейстеріне қол жеткізуге толық мүмкіндік береді, біріншісі беттердің жұмысын бұзбайтын минималды блоктауды қамтиды, екінші деңгей блоктау мен үйлесімділік арасындағы теңгерімдерді, ал төртінші деңгей қажет емес барлық нәрсені қатаң блоктауды қамтиды.

API блоктау параметрлерін жеке сайттарға байланыстыруға болады, мысалы, кейбір сайттар үшін қорғанысты күшейтіп, басқалары үшін өшіруге болады. Сондай-ақ кейбір JavaScript әдістерін, нысандарын, қасиеттерін және функцияларын таңдап блоктай аласыз немесе қайтарылатын мәндерді өзгерте аласыз (мысалы, жүйе туралы жалған ақпарат шығару). Жеке мүмкіндік NBS (желі шекарасының қалқаны) режимі болып табылады, ол беттерге браузерді сыртқы және жергілікті желілер арасында прокси ретінде пайдалануға мүмкіндік бермейді (барлық шығыс сұраулар ұсталады және талданады).

Блокталған немесе шектелген 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.getByteFrequencyDatalodent.)reF арқылы AnalyserNode. дыбыстық сигналдарды талдау.
  • WebGLRenderingContext – графикалық стек пен GPU мүмкіндіктерін талдау арқылы сәйкестендіру.
  • MediaDevices.prototype.enumerateDevices - камера мен микрофонның параметрлері мен атауларын алу арқылы сәйкестендіру.
  • navigator.deviceMemory, navigator.hardwareConcurrency – аппараттық құрал туралы ақпарат алу.
  • XMLHttpRequest (XHR) - бет жүктелгеннен кейін жиналған жүйелік ақпаратты сыртқы серверге тасымалдайды.
  • ArrayBuffer – микроархитектуралық Spectre шабуылдарын жүзеге асыру.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) – деректерге қол жеткізу кезіндегі кідірістерді бағалайтын шабуылдарды орындау.
  • Geolocation API (navigator.geolocation) - орын туралы ақпаратқа қол жеткізу (қосымша қайтарылған деректерді бұрмалауға мүмкіндік береді).
  • Геймпад API (navigator.getGamepads()) жүйеде геймпадтың болуын ескеретін сәйкестендіру белгілерінің бірі болып табылады.
  • Virtual Reality API, Mixed Reality API - сәйкестендіру үшін виртуалды шындық құрылғысының параметрлерін пайдалану.
  • window.name - сайттар арасындағы ағып кетулер.
  • navigator.sendBeacon – веб-аналитика үшін пайдаланылады.

Ақпарат көзі: opennet.ru

пікір қалдыру