Wszystkie artykuły

Platforma

Jak SCALE Order chroni dane Twojej restauracji

Restauracje obsługują prawdziwych klientów i prawdziwe pieniądze. Oto zabezpieczenia wbudowane w SCALE Order — od tego, jak oddzielane są dane każdej restauracji, po zabezpieczenie logowania, sesji i zapisów.

Najważniejsze informacje

  • Dane każdej restauracji są oddzielone w samej bazie danych, a nie tylko w aplikacji.
  • Hasła są hashowane algorytmem scrypt; powtarzające się nieudane próby blokują konto na 15 minut.
  • Sesje są rotowane przy każdym odświeżeniu, a ponowne użycie starej sesji kończy cały łańcuch logowania.
  • Do zamówień, zapisów gotówki, punktów i dziennika audytu można tylko dopisywać.

Każda restauracja we własnej przestrzeni

Wszystkie restauracje działają na jednej platformie, ale to baza danych wymusza ich rozdzielenie. Każda tabela restauracji ma włączone i wymuszone zabezpieczenia na poziomie wierszy, a każde żądanie działa w transakcji przypisanej do jednej restauracji. Konto, z którego korzysta aplikacja, nie może obejść tych reguł.

Dwie wewnętrzne role mogą je pominąć do wąsko określonych zadań: procesy działające w tle, które mogą jedynie pobrać listę aktywnych restauracji, zanim wykonają swoją pracę restauracja po restauracji, oraz centrum sterowania zespołu SCALE, które nie ma dostępu do adresów klientów, lokalizacji zamówień, skrótów haseł ani własnych dzienników audytu restauracji.

Logowanie i hasła

  • Hasła mają od 8 do 128 znaków i są przechowywane jako skróty scrypt z losową solą; porównuje się je w stałym czasie.
  • Pięć błędnych haseł blokuje konto na 15 minut. Próba zalogowania się na nieistniejące konto trwa tyle samo, więc nie zdradza, które konta istnieją.
  • Próby logowania są też ograniczane dla każdego adresu w okresie 15 minut: 10 dla pracowników, 60 dla klientów, 5 rejestracji nowych klientów. Liczniki są wspólne dla wszystkich serwerów.
  • Kody weryfikacyjne mają 6 cyfr, wygasają po 10 minutach i pozwalają na ograniczoną liczbę prób.
  • Ochronę przed botami Cloudflare można włączyć dla logowania i składania zamówień.

Sesje, których nie da się odtworzyć

Logowanie daje krótkotrwały token dostępu (domyślnie 15 minut) oraz token odświeżania. Każde odświeżenie zastępuje token odświeżania nowym. Jeśli stary token zostanie kiedykolwiek użyty ponownie, cały łańcuch sesji zostaje zakończony, co nie pozwala długo korzystać ze skradzionego tokenu.

Każde żądanie sprawdza też, czy sesja jest nadal aktywna, więc usunięcie pracownika, zmiana jego hasła lub ograniczenie roli od razu wylogowuje go wszędzie. Pliki cookie panelu nie mogą być odczytywane przez skrypty strony i nie są wysyłane przez inne witryny.

Role z minimalnymi uprawnieniami

Dostęp jest zbudowany z 29 uprawnień — od odczytu zamówień po potwierdzanie gotówki czy zarządzanie pracownikami. Właściciel może tworzyć role z dowolnym ich zestawem, a pracowników można ograniczyć do jednego lokalu. Nikt nie może nadać uprawnienia, którego sam nie ma, wbudowanych ról nie można edytować, a ostatniego aktywnego właściciela nie można usunąć.

Panel ukrywa to, z czego dana rola nie może korzystać, ale służy to tylko przejrzystości: serwer sprawdza uprawnienie, lokal i członkostwo przy każdej czynności.

Zapisy, których nie da się przepisać

Do zmian statusów zamówień, rejestru punktów, ruchów magazynowych, historii cen i dziennika audytu można tylko dopisywać. Baza danych odrzuca każdą zmianę lub usunięcie, więc korekty wprowadza się, dodając nowy, widoczny wpis.

Poszanowanie danych klientów

  • Lokalizacje zamówień są pobierane tylko wtedy, gdy aplikacja jest otwarta, za zgodą klienta, i są usuwane po 180 dniach.
  • Klienci mogą usunąć swoje konto na stronie lub w aplikacji. Ich adresy, lokalizacje, urządzenia, powiadomienia i hasło są usuwane, a profil jest anonimizowany.
  • Aby ta sama osoba nie mogła ponownie korzystać z ofert dla nowych klientów, przechowywane są wyłącznie chronione odciski (skróty) jej numeru telefonu i adresu e-mail.