پرش به محتوای اصلی
رؤوفResearchOS
فارسی
سیدنی، استرالیازمان کنونی سیدنی—
برای بستن این پنجره، کلید Escape را فشار دهید.
امن‌سازی برنامه‌های Electron: راهنمای عملی

Electron

امن‌سازی برنامه‌های Electron: راهنمای عملی

مدیریت امن اطلاعات محرمانه و IPC در برنامه‌های دسکتاپ جدید.

چرا Electron به دقت نیاز دارد؟

برنامه Electron مرورگر و محیط اجرای Node.js را یکجا گرد می‌آورد. اگر رندرری که محتوای دوردست یا تحت نفوذ مهاجم را بارگذاری می‌کند به Node دسترسی داشته باشد، یک XSS به اجرای کد از راه دور روی دستگاه کاربر تبدیل می‌شود. امن‌سازی Electron عمدتاً به جداسازی این دو محیط وابسته است. GitSwitch، کلاینت Git با Electron و React 19 که توکن‌های GitHub و کلید API Gemini را نگه می‌دارد، باید این مرز را درست پیاده کند.

قرارداد جداسازی

تنظیممقداردلیل
contextIsolationروشنpreload و صفحه در زمینه‌های جداگانه JS اجرا می‌شوند تا صفحه نتواند متغیرهای سراسری دارای اختیار را دست‌کاری کند
sandboxروشنرندرر دسترسی مستقیم به Node.js، require، fs یا child_process ندارد
nodeIntegrationخاموشصفحه هرگز به امکانات داخلی Node دسترسی ندارد
API ارائه‌شدهفهرست مجاز contextBridgepreload چند تابع مشخص را ارائه می‌کند، نه ipcRenderer خام را

IPC به‌عنوان مرز اعتماد

هر اقدام دارای اختیار از ipcMain.handle / ipcRenderer.invoke روی فهرست صریح کانال‌های مجاز عبور می‌کند. فرایند اصلی هر پیام را ورودی غیرقابل اعتماد می‌داند: کانال‌ها اعتبارسنجی و آرگومان‌ها پاک‌سازی می‌شوند؛ فراخوانی‌های طولانی مهلت زمانی دارند تا عملیات معطل Git برنامه را قفل نکند. رابط اجرای دستور دلخواه وجود ندارد؛ هر کانال وظیفه محدودی انجام می‌دهد.

مدیریت اطلاعات محرمانه

توکن‌ها وارد localStorage نمی‌شوند و در رندرر باقی نمی‌مانند:

  • هنگام ذخیره، توکن دسترسی شخصی GitHub و کلید Gemini در مخزن کلید سیستم‌عامل قرار دارند: Keychain در macOS، Credential Manager در Windows و libsecret در Linux؛ نه در فایل تنظیمات متنی.
  • هنگام استفاده، کلیدها از گزارش حذف و پس از استفاده از حافظه پاک می‌شوند تا گزارش خرابی یا گزارش اشتراکی آن‌ها را افشا نکند.
  • هنگام انتقال، API Gemini تنها مسیر خروجی شبکه است و diff ارسالی برای تولید پیام commit به تغییراتی محدود می‌شود که کاربر ثبت می‌کند.

نتیجه

پیش‌فرض‌های آسان‌کننده Electron مانند Node در رندرر، ماژول قدیمی remote و IPC گسترده، خطر هم ایجاد می‌کنند. GitSwitch جداسازی و sandbox را فعال می‌کند، رابطی کوچک و ممیزی‌شده دارد و اطلاعات محرمانه را در مخزن کلید سیستم‌عامل نگه می‌دارد. نتیجه، برنامه دسکتاپی با رابط وب است که نمی‌توان آن را به اجرای کدی واداشت که برای اجرای آن ساخته نشده است.

پایان نوشتهشناسه: electron-security

جست‌وجو

پروژه، مقاله، نوشته یا صفحه‌ای را پیدا کنید.

۳۰ / ۴۱ · نتایج جست‌وجو

↑ ↓ ناوبری فضای کارEnter باز کردنEsc بستن