Зараз читаютьПрактичні новини про код, AI та технології — без інформаційного шуму

Electron 43.7 посилив дозволи, IPC та захист drag-and-drop між фреймами

Стабільний Electron 43.7 точніше визначає джерело запитів, обмежує File System Access документом і закриває серію падінь на Linux та Windows.

Electron 43.7 посилив дозволи, IPC та захист drag-and-drop між фреймами

Electron 43.7.0 вийшов як стабільне обслуговувальне оновлення з помітним набором виправлень на межі безпеки й стабільності. Розробники додали більше контексту про ініціатора мережевих запитів, звузили область дії дозволів File System Access, посилили перевірку IPC та усунули падіння, пов’язані з потоками, діалогами файлів, iframe і захопленням екрана.

Редакційна ілюстрація захищеного вікна настільного застосунку та контрольованих потоків даних
Редакційна AI-ілюстрація bib.com.ua; вона не є інтерфейсом Electron і не входить до release notes.

Походження запиту стає видимішим

API webRequest і protocol handlers отримали поле initiatorOrigin. Аналогічний метод getInitiatorOrigin() додано до DownloadItem, а події will-download і preconnect тепер передають frame. Для застосунків із кількома webContents, iframe або custom protocol це дає змогу приймати рішення не лише за URL ресурсу, а й за документом, який ініціював дію.

Практичний наслідок — точніші allowlist і журнали аудиту. Якщо завантаження почалося з недовіреного iframe, застосунок може застосувати іншу політику, ніж до дії головного вікна. Водночас поле походження не замінює перевірку URL, scheme, контексту сесії та дозволів користувача.

File System Access більше не «прилипає» до зайвих сторінок

Запити File System Access і подія file-system-access-restricted тепер обмежуються документом, який їх створив. Надані права скидаються, коли закривається остання сторінка відповідного origin. Виправлено також write-доступ у memory sessions.

Це важливо для застосунків, які відкривають кілька вкладок або використовують тимчасові partition: дозвіл не повинен автоматично переживати життєвий цикл документа. Після оновлення варто протестувати збереження, повторне відкриття файлів, закриття останнього вікна origin та сценарії incognito/in-memory session.

IPC, iframe та webview

Внутрішні відповіді IPC для <webview>, window.close() та executeJavaScript тепер перевіряються відносно frame-відправника. Electron також виправив crash, коли main process надсилав IPC у дочірнє вікно window.open() з іншим налаштуванням contextIsolation. Запити HID і USB із subframe тепер передають правильний origin та webContents до permission handler.

Окреме виправлення повертає браузерний захист, який блокує drag-and-drop між cross-site frames однієї сторінки. Для <webview> без allowpopups тепер блокуються й посилання, відкриті modifier-click у нове вікно. А execCommand('paste') вимагає user activation саме у frame, який викликає команду.

Стабільність Linux, Windows і screen capture

На Linux усунуто race під час одночасного читання й запису process.env та витік пам’яті після завершення worker thread. На Windows виправлено потенційне падіння, коли file dialog відкривався для вікна, яке паралельно закривалося. У screen capture закрито crash-сценарії, коли дозволений frame уже знищено або джерелом за ID стає інша вкладка.

Змінено й застарілий сценарій getUserMedia: chromeMediaSource: 'desktop' більше не приймає WebContents source ID. Для захоплення конкретного webContents потрібно використовувати chromeMediaSource: 'tab' разом із webContents.getMediaSourceId() або setDisplayMediaRequestHandler.

Як оновлювати

  • Перевірити permission handlers на правильну роботу з frame та origin.
  • Прогнати тести завантажень, custom protocols, File System Access і screen capture.
  • Переконатися, що preload не покладається на Node integration у worker, створеному subframe без відповідного дозволу.
  • Оновити CI для Linux і Windows та перевірити довгі сесії на витоки пам’яті.

Реліз також оновлює вбудований Node.js до 24.21.0 і повертає працездатність кількох функцій DevTools. Для застосунків на гілці 43 це рекомендований кандидат на швидке тестування: значна частина змін не додає нової поведінки продукту, а робить межі доступу й життєвий цикл об’єктів передбачуванішими.

Першоджерело:Electron Releases ↗
Автор:Electron contributors
Ліцензія:MIT License ↗

Матеріал перекладено, переказано та доповнено редакцією українською мовою.

</>

Читайте далі — ми вже розбираємо наступну важливу тему.

Далі за темою

Схожі матеріали