تخطَّ إلى المحتوى

الأمان

تُقدَّم الصفحة من droid.devpier.dev، لكن المحاكي والبوابة يعملان على جهاز Mac الخاص بك. يمكن لأي صفحة ويب تفتحها أن تحاول الاتصال ببرنامج على جهاز Mac الخاص بك، لذلك تتحقق البوابة من كل اتصال.

تستمع البوابة على 127.0.0.1 فقط. لا تقبل اتصالات من شبكتك المحلية أو من الإنترنت. لا تستطيع أجهزة الكمبيوتر الأخرى الوصول إليها.

ترسل المتصفحات الترويسة Origin عندما تفتح صفحة اتصال WebSocket. تقبل البوابة هذه المصادر فقط:

  • https://droid.devpier.dev
  • http://127.0.0.1:<port>
  • http://localhost:<port>

يُغلق أي اتصال يحمل مصدرًا (Origin) آخر، أو لا يحمل مصدرًا، بالرمز 4003. لا تستطيع صفحة على موقع آخر التحكم في المحاكي لديك، حتى لو خمّنت المنفذ.

  • في كل مرة تبدأ فيها البوابة، تنشئ رمزًا مميزًا عشوائيًا جديدًا: 32 بايتًا عشوائيًا، تُرمَّز كسلسلة base64url من 43 حرفًا.
  • تفتح البوابة الصفحة مع المنفذ والرمز المميز بعد #: https://droid.devpier.dev/app/#port=<port>&token=<token>. لا ترسل المتصفحات الجزء الذي يلي # إلى خادم الويب، لذلك لا يصل الرمز المميز أبدًا إلى droid.devpier.dev.
  • تحفظ الصفحة المنفذ والرمز المميز في التخزين المحلي للمتصفح، لتتمكن من إعادة تحميل الصفحة، وتزيلهما من شريط العنوان.
  • يجب أن تحمل الرسالة الأولى في كل اتصال الرمز المميز. إذا كان خاطئًا، ترد البوابة بالخطأ bad-token وتغلق الاتصال بالرمز 4001.
  • عند إعادة تشغيل البوابة، يتوقف الرمز المميز القديم عن العمل. افتح الرابط الجديد الذي تطبعه.

الموقع الإلكتروني لا يتصل بجهاز Mac الخاص بك

Section titled “الموقع الإلكتروني لا يتصل بجهاز Mac الخاص بك”

يعمل كل من إذن الشبكة المحلية في Chrome وفحص Origin في البوابة على مستوى الموقع، لا على مستوى المسار. لذلك تتشارك صفحات التوثيق الإذن مع صفحة المحاكي على /app/. وللحد مما يعنيه ذلك:

  • صفحة المحاكي على /app/ وحدها هي التي تتصل بالبوابة. أما الصفحة الرئيسية وهذا التوثيق فلا يتصلان بها أبدًا، لذا فإن قراءتهما لا تُظهر طلب الإذن.
  • لا يحمّل الموقع أي سكربتات أو أنماط أو خطوط أو وسائط من جهات خارجية. كل شيء يُقدَّم من droid.devpier.dev.
  • الرمز المميز فحص ثانٍ: لا تستطيع صفحة على droid.devpier.dev لا تملك الرمز المميز استخدام البوابة.

لا تثبّت البوابة أبدًا حزم Android SDK ولا تنشئ أجهزة دون أن تسأل. تسأل [y/N] في Terminal، والإجابة الافتراضية هي لا. وتقبل أنت تراخيص Android SDK بنفسك.

الرمز المعنى
4000 لم تكن الرسالة الأولى hello.
4001 رمز مميز خاطئ.
4002 تستخدم الصفحة والبوابة إصدارين مختلفين من البروتوكول.
4003 المصدر (Origin) غير مسموح به.

افتح مشكلة (issue) على github.com/twosugar/android-emu-web.