ืงืจืŸ ื”ืงื•ื“ ื”ืคืชื•ื— ื”ืฆื™ื’ื” ืืช ืชื•ืกืฃ ื”ื“ืคื“ืคืŸ JShelter ื›ื“ื™ ืœื”ื’ื‘ื™ืœ ืืช ื”-API ืฉืœ JavaScript

ืงืจืŸ ื”ืชื•ื›ื ื” ื”ื—ื•ืคืฉื™ืช ื”ืฆื™ื’ื” ืืช ืคืจื•ื™ืงื˜ 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”