ืงืจื ืืชืืื ื ืืืืคืฉืืช ืืฆืืื ืืช ืคืจืืืงื JShelter, ืฉืืคืชื ืชืืกืฃ ืืืคืืคื ืืืื ื ืืคื ื ืืืืืื ืืืชืขืืจืจืื ืืขืช ืฉืืืืฉ ื-JavaScript ืืืชืจื ืืื ืืจื ื, ืืจืืืช ืืืืื ื ืกืชืจ, ืืขืงื ืืืจ ืชื ืืขืืช ืืฆืืืจืช ื ืชืื ื ืืฉืชืืฉืื. ืงืื ืืคืจืืืงื ืืืคืฅ ืชืืช ืจืืฉืืื GPLv3. ืืชืืกืฃ ืืืื ืขืืืจ Firefox, Google Chrome, Opera, Brave, Microsoft Edge ืืืคืืคื ืื ืืืจืื ืืืืืกืกืื ืขื ืื ืืข Chromium.
ืืคืจืืืงื ืืคืืชื ืืืืืื ืืฉืืชืคืช ืืืืืื ืงืจื NLnet. ื'ืืจื'ืื ืืืื ื, ืืืฆืจ ืืชืืกืฃ 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.getidentaFloat analysis ืฉื ื ืืชืื ืืืชืืช.Data.getByteTimeDomainData.
- WebGLRenderingContext - ืืืืื ืืืืฆืขืืช ื ืืชืื ืชืืื ืืช ืฉื ืืืกื ืืช ืืืจืคืืงื ืื-GPU.
- MediaDevices.prototype.enumerateDevices - ืืืืื ืืืืฆืขืืช ืงืืืช ืคืจืืืจืื ืืฉืืืช ืฉื ืืืฆืืื ืืืืืงืจืืคืื.
- navigator.deviceMemory, navigator.hardwareConcurrency - ืงืืืช ืืืืข ืขื ืืืืจื.
- XMLHttpRequest (XHR) - ืืขืืืจ ืืืืข ืืขืจืืช ืฉื ืืกืฃ ืืฉืจืช ืืืฆืื ื ืืืืจ ืืขืื ืช ืืืฃ.
- ArrayBuffer - ืืืฆืืข ืืชืงืคืืช ืกืคืงืืจ ืืืงืจื-ืืจืืืืงืืื ืืืช.
- WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - ืืืฆืืข ืืชืงืคืืช ืฉืืขืจืืืืช ืขืืืืืื ืืขืช ืืืฉื ืื ืชืื ืื.
- Geolocation API (navigator.geolocation) - ืืืฉื ืืืืืข ืขื ืืืงืื (ืืชืืกืคืช ืืืคืฉืจืช ืืขืืืช ืืช ืื ืชืื ืื ืืืืืืจืื).
- Gamepad API (navigator.getGamepads()) ืืื ืืื ืืกืืื ื ืืืืืื ืฉืืืงื ืืืฉืืื ืืช ืื ืืืืืช ืฉื gamepad ืืืขืจืืช.
- Virtual Reality API, Mixed Reality API - ืฉืืืืฉ ืืคืจืืืจืื ืฉื ืืืฉืืจื ืืฆืืืืช ืืืืื ืืฆืืจื ืืืืื.
- window.name - ืืืืคืืช ืืืฆืืช ืืชืจืื.
- navigator.sendBeacon - ืืฉืืฉ ืื ืืชืื ืืื ืืจื ื.
ืืงืืจ: OpenNet.ru