すべての記事

プラットフォーム

SCALE Order はレストランのデータをどう守っているか

レストランは実際のお客様と実際のお金を扱います。各レストランのデータの分離方法から、ログイン、セッション、記録の保護方法まで、SCALE Order に組み込まれている保護の仕組みをご紹介します。

要点

  • 各レストランのデータは、アプリ内だけでなく、データベース自体の中で分離されています。
  • パスワードは scrypt でハッシュ化され、失敗が続くとアカウントが15分間ロックされます。
  • セッションは更新のたびにローテーションされ、使用済みのセッションが再利用されると、ログインのつながり全体が終了します。
  • 注文、現金、ポイント、監査の記録は追記のみです。

すべてのレストランに専用の領域

すべてのレストランは1つのプラットフォーム上で動作しますが、分離はデータベースが強制します。レストランのすべてのテーブルで行レベルセキュリティが有効化かつ強制されており、すべてのリクエストは1つのレストランに設定されたトランザクションの中で実行されます。アプリケーションが使うアカウントは、これらのルールを回避できません。

限られた業務のために、2つの内部ロールだけがこのルールの外で動作できます。1つはバックグラウンドワーカーで、レストランごとに処理を行う前に、どのレストランが有効かを一覧することだけが許可されています。もう1つは SCALE チームのコントロールセンターで、お客様の住所、注文時の位置情報、パスワードのハッシュ、各レストラン自身の監査ログにはアクセスできません。

ログインとパスワード

  • パスワードは8〜128文字で、ランダムなソルトを付けた scrypt のハッシュとして保存され、比較は一定時間で行われます。
  • パスワードを5回間違えると、アカウントは15分間ロックされます。存在しないアカウントへのログインにも同じ時間がかかるため、どのアカウントが存在するかは明らかになりません。
  • ログイン試行は、アドレスごとに15分間あたりの回数でも制限されます。スタッフは10回、お客様は60回、新規のお客様登録は5回です。この回数はすべてのサーバーで共有されます。
  • 確認コードは6桁で、10分で期限切れになり、試行できる回数に上限があります。
  • ログインと注文時には、Cloudflare のボット対策をオンにできます。

使い回しのできないセッション

ログインすると、有効期間の短いアクセストークン(標準は15分)とリフレッシュトークンが発行されます。更新のたびに、リフレッシュトークンは新しいものに置き換えられます。古いトークンが再び使われた場合は、一連のセッションがすべて終了するため、盗まれたトークンが長く使われることはありません。

各リクエストでは、セッションがまだ有効かどうかも確認されます。そのため、スタッフを削除したり、パスワードを変更したり、役割を縮小したりすると、そのスタッフはすべての場所で即座にログアウトされます。管理コンソールの Cookie は、ページのスクリプトから読み取れず、他のサイトから送信されることもありません。

最小権限の役割

アクセス権は、注文の閲覧から現金の確定、スタッフの管理まで、29の権限で構成されます。オーナーはこれらを自由に組み合わせて役割を作成でき、スタッフを1店舗に限定することもできます。自分が持っていない権限を他の人に付与することはできず、組み込みの役割は編集できません。また、最後の有効なオーナーを削除することもできません。

管理コンソールは、その役割で使えない項目を非表示にしますが、これはわかりやすさのためだけです。サーバーはすべての操作で、権限、店舗、メンバーであることを確認します。

書き換えられない記録

注文ステータスの変更、ポイント台帳、在庫の移動、価格の履歴、監査ログは追記のみです。データベースは更新や削除をすべて拒否するため、修正は新しい、目に見える記録を追加することで行います。

お客様のデータを尊重

  • 注文時の位置情報は、アプリを開いている間だけ、同意を得て取得され、180日後に削除されます。
  • お客様は注文サイトまたはアプリからアカウントを削除できます。住所、位置情報、デバイス、通知、パスワードは削除され、プロフィールは匿名化されます。
  • 同じ人が新規顧客向けのオファーを再び受け取ることを防ぐため、電話番号とメールアドレスについては、保護されたフィンガープリントだけが保持されます。
  • プラットフォーム

    マネージャーアプリと日次締めレポート

    マネージャーアプリは、管理コンソールを Android スマートフォンで使えるようにします。新しい注文ごとの通知、注文受付の開始・停止のリマインダー、そして毎日保存される締めレポートを備えています。

  • ロイヤルティと成長

    ロイヤルティポイントの仕組み:獲得、有効化、利用、失効

    ポイントプログラムが信頼されるのは、ルールが予測できる場合だけです。SCALE Order がポイントをどのように付与し、保留し、有効にし、利用させ、失効させるのか、そしてその裏にある台帳がなぜ編集できないのかを詳しくご説明します。