Temel noktalar
- Her restoranın verileri yalnızca uygulamada değil, doğrudan veritabanının içinde ayrılır.
- Parolalar scrypt ile karma değerine dönüştürülür; tekrarlanan hatalı denemeler hesabı 15 dakika kilitler.
- Oturumlar her yenilemede değiştirilir ve yeniden kullanılan bir oturum tüm giriş zincirini sonlandırır.
- Sipariş, nakit, puan ve denetim kayıtlarına yalnızca ekleme yapılabilir.
Her restoran kendi alanında
Tüm restoranlar tek bir platformda çalışır, ancak ayrımı veritabanı uygular. Her restoran tablosunda satır düzeyinde güvenlik açık ve zorunlu tutulur; her istek, tek bir restorana ayarlanmış bir işlem (transaction) içinde çalışır. Uygulamanın kullandığı hesap bu kuralları aşamaz.
Dar kapsamlı işler için iki dahili rolün bu kuralların ötesine geçmesine izin verilir: işlerini restoran restoran yapmadan önce yalnızca hangi restoranların etkin olduğunu listeleyebilen arka plan görevleri ve müşteri adreslerine, sipariş konumlarına, parola karma değerlerine veya restoranların kendi denetim kayıtlarına erişimi olmayan SCALE ekibinin kontrol merkezi.
Giriş ve parolalar
- Parolalar 8 ile 128 karakter arasındadır ve rastgele bir tuzla scrypt karma değerleri olarak saklanır; karşılaştırma sabit sürede yapılır.
- Beş hatalı parola denemesi hesabı 15 dakika kilitler. Var olmayan bir hesaba giriş denemesi de aynı süreyi alır; böylece hangi hesapların var olduğu açığa çıkmaz.
- Giriş denemeleri ayrıca adres başına 15 dakikalık süre içinde sınırlandırılır: personel için 10, müşteriler için 60, yeni müşteri kaydı için 5. Bu sayılar tüm sunucular arasında paylaşılır.
- Doğrulama kodları 6 hanelidir, 10 dakika sonra geçerliliğini yitirir ve sınırlı sayıda denemeye izin verir.
- Cloudflare bot koruması giriş ve sipariş verme için açılabilir.
Tekrar kullanılamayan oturumlar
Giriş, kısa ömürlü bir erişim belirteci (varsayılan olarak 15 dakika) ve bir yenileme belirteci verir. Her yenileme, yenileme belirtecini yenisiyle değiştirir. Eski bir belirteç yeniden kullanılırsa tüm oturum zinciri sonlandırılır; bu da çalınan bir belirtecin uzun süre kullanılmasını engeller.
Her istek ayrıca oturumun hâlâ etkin olup olmadığını kontrol eder; böylece bir personeli kaldırmak, parolasını değiştirmek veya rolünü düşürmek onun oturumunu her yerde aynı anda kapatır. Panel çerezleri sayfa betikleri tarafından okunamaz ve diğer siteler tarafından gönderilmez.
En az yetki ilkesine dayalı roller
Erişim, siparişleri okumaktan nakdi onaylamaya veya personeli yönetmeye kadar 29 yetkiden oluşturulur. İşletme sahibi bunların herhangi bir bileşimiyle roller oluşturabilir ve personel tek bir şubeyle sınırlandırılabilir. Hiç kimse kendisinde olmayan bir yetkiyi veremez, yerleşik roller düzenlenemez ve son etkin işletme sahibi kaldırılamaz.
Panel, bir rolün kullanamayacağı öğeleri gizler, ancak bu yalnızca anlaşılırlık içindir: sunucu her işlemde yetkiyi, şubeyi ve üyeliği kontrol eder.
Yeniden yazılamayan kayıtlar
Sipariş durum değişikliklerine, puan defterine, stok hareketlerine, fiyat geçmişine ve denetim kaydına yalnızca ekleme yapılabilir. Veritabanı her türlü güncellemeyi veya silmeyi reddeder; bu nedenle düzeltmeler yeni ve görünür bir kayıt eklenerek yapılır.
Müşteri verilerine saygı
- Sipariş konumları yalnızca uygulama açıkken ve izinle alınır ve 180 gün sonra silinir.
- Müşteriler hesaplarını web sitesinden veya uygulamadan silebilir. Adresleri, konumları, cihazları, bildirimleri ve parolaları kaldırılır ve profilleri anonim hâle getirilir.
- Aynı kişinin yeni müşteri tekliflerinden tekrar yararlanmasını önlemek için, telefon numarası ve e-posta adresinin yalnızca korumalı parmak izleri saklanır.