1

セキュリティで保護する必要がある Web アプリケーションでは、3 層アーキテクチャを使用することがベスト プラクティスであるという考えを聞いたことがあります。

このアーキテクチャに関する私の理解は次のとおりです。

  • Web 層サーバー - フィールド要求を行い、データベース通信のために中間層と通信します。データベースは、Web サーバー環境から完全に隔てられています。
  • 中間層サーバー - すべての情報の取得と保存を処理する API を公開します。Web サーバーは、このサーバーと通信してデータ操作を処理します。
  • データ層サーバー - すべてのユーザー データを格納します。中間層からの通信を許可しますが、Web 層からの通信は許可しません

もう 1 つのオプションは、Web サーバーからデータベースへの直接通信です。この通信は、アプリケーションが必要とするアクセス権のみを持つ特定のユーザーとして行われます (必要なテーブルの 、 ) SELECT。たとえば、このユーザーはユーザー テーブルからレコードを削除したり、テーブルを削除したりすることはできません。INSERTUPDATE

より安全な 3 層アプローチの背後にあるロジックは、Web サーバーが侵害された場合、攻撃者は API を使用できるのと同じ方法でしかデータを取得できないということです。

私の質問: このタイプのアプローチは、潜在的に機密性の高いデータが保存されている Web アプリケーションに必要ですか? 非常に機密性の高いデータはすべて保存時に暗号化されますが、その他の個人を特定できる情報は平文で保存され、検索が可能になります。

必要な場合、そのようなアプローチを確保する最善の方法は何ですか? 特定のユーザーのデータを取得するために、API で有効なセッション トークンを要求する必要がありますか? 私が懸念するのは、別のセキュリティ層がなければ、攻撃者が単に API を使用して必要なデータを取得できることです。これを防ぐために API をどのように保護しますか?

4

0 に答える 0