أبرز النقاط
- تُفصل بيانات كل مطعم داخل قاعدة البيانات نفسها، لا في التطبيق وحده.
- تُجزَّأ كلمات المرور بخوارزمية scrypt، وتُقفل المحاولات الخاطئة المتكررة الحساب 15 دقيقة.
- تتجدّد الجلسات مع كل تحديث، وإعادة استخدام جلسة قديمة تنهي سلسلة الدخول كلها.
- سجلات الطلبات والدفع النقدي والنقاط والتدقيق للإضافة فقط.
كل مطعم في مساحته الخاصة
تعمل كل المطاعم على منصّة واحدة، لكن قاعدة البيانات هي التي تفرض الفصل. فكل جدول خاص بالمطاعم مفعَّل عليه أمان مستوى الصف إلزامياً، وكل طلب يعمل في معاملة مضبوطة على مطعم واحد. ولا يستطيع الحساب الذي يستخدمه التطبيق تجاوز هذه القواعد.
ويُسمح لدورين داخليين بتجاوزها لمهام محدودة: مهام الخلفية التي لا تستطيع إلا معرفة المطاعم النشطة قبل أن تعمل على كل مطعم على حدة، ومركز تحكم فريق SCALE الذي لا يصل إلى عناوين العملاء ولا مواقع الطلبات ولا بصمات كلمات المرور ولا سجلات التدقيق الخاصة بالمطاعم.
الدخول وكلمات المرور
- كلمات المرور من 8 إلى 128 حرفاً، وتُحفظ بتجزئة scrypt مع ملح عشوائي، وتُقارن في زمن ثابت.
- خمس كلمات مرور خاطئة تقفل الحساب 15 دقيقة. ويستغرق الدخول إلى حساب غير موجود الوقت نفسه، فلا يكشف الحسابات الموجودة.
- تُحدَّد محاولات الدخول أيضاً لكل عنوان خلال 15 دقيقة: 10 للفريق و60 للعملاء و5 تسجيلات لعملاء جدد، وتتشارك كل الخوادم هذه الأعداد.
- رموز التحقق من 6 أرقام، وتنتهي بعد 10 دقائق، وتسمح بعدد محدود من المحاولات.
- يمكن تفعيل حماية Cloudflare من الروبوتات عند الدخول وعند إرسال الطلبات.
جلسات لا يمكن إعادة استخدامها
يمنح الدخول رمز وصول قصير الأجل (15 دقيقة افتراضياً) ورمز تحديث. وكل تحديث يستبدل رمز التحديث برمز جديد، وإذا استُخدم رمز قديم مرة أخرى تنتهي سلسلة الجلسات كلها، فلا يُستخدم رمز مسروق طويلاً.
ويتحقّق كل طلب أيضاً من أن الجلسة ما زالت فعّالة، فإزالة عضو من الفريق أو تغيير كلمة مروره أو تقليص دوره يخرجه من كل الأجهزة فوراً. ولا تستطيع نصوص الصفحة قراءة ملفات تعريف الارتباط الخاصة بلوحة المطعم، ولا ترسلها المواقع الأخرى.
أدوار بأقل صلاحيات لازمة
يُبنى الوصول من 29 صلاحية، من قراءة الطلبات إلى تأكيد الدفع النقدي أو إدارة الفريق. ويستطيع المالك إنشاء أدوار بأي مزيج منها، وقصر أعضاء الفريق على فرع واحد. ولا يستطيع أحد منح صلاحية لا يملكها، ولا يمكن تعديل الأدوار المدمجة، ولا إزالة آخر مالك فعّال.
تخفي لوحة المطعم ما لا يستطيع الدور استخدامه، لكن ذلك للوضوح فقط: فالخادم يتحقّق من الصلاحية والفرع والعضوية في كل إجراء.
سجلات لا يمكن إعادة كتابتها
تغييرات حالة الطلبات وسجل النقاط وحركات المخزون وتاريخ الأسعار وسجل التدقيق كلها للإضافة فقط. ترفض قاعدة البيانات أي تعديل أو حذف، فتُجرى التصحيحات بإضافة سطر جديد ظاهر.
احترام بيانات العملاء
- لا تُؤخذ مواقع الطلبات إلا أثناء فتح التطبيق وبموافقة العميل، وتُحذف بعد 180 يوماً.
- يستطيع العملاء حذف حساباتهم من الموقع أو التطبيق، فتُحذف عناوينهم ومواقعهم وأجهزتهم وإشعاراتهم وكلمات مرورهم، ويُجهَّل ملفهم.
- ولمنع الشخص نفسه من الحصول على عروض العملاء الجدد مجدداً، لا تُحفظ إلا بصمات محمية لهاتفه وبريده.