0

最近、多層アプリケーションを作成するための調査を行っています。私が読んだすべてのトピックは、3 層アーキテクチャが 2 層アーキテクチャよりも優れていることを示唆しています。クライアント側でデータベースの接続文字列を公開すると、システムに大きなセキュリティ ホールが作成されるためです。これらの記事はすべて、データベースの場所を公開するのは悪い考えであると説明しているだけで、その理由を説明しているものはありません。

誰でも私を助けて、データベースの場所を公開するスレッドを説明してもらえますか? つまり、彼らは場所を知っていますが、ログインしてデータベースを変更するためのユーザー名とパスワードを知りません. 3 層アーキテクチャが 2 層アーキテクチャよりも安全なのはなぜですか? データベースに到達するための追加の希望だけですか?

前もって感謝します, コンスタンティン・パタク

4

1 に答える 1

0

接続文字列には、ユーザー名とパスワードが含まれます。クライアント アプリケーションがデータベースに直接アクセスできる場合、ユーザーはクライアント アプリケーションを検査し、接続資格情報を抽出して同じことを行うことができます。

中間層は、クライアントに実行させたい操作に対応する API を提供します。クライアントは、データベースを含む場合と含まない場合がある内部実装から保護されています。クライアントに影響を与えずに実装を変更できます。おそらく、負荷が非常に高く、RDS から NoSQL に切り替える必要があることに気付くでしょう。クライアントは知る必要も変更する必要もありません。おそらく、データベースにヒットすることなく、いくつかの結果をキャッシュし始めるでしょう。繰り返しますが、クライアントは知る必要も変更する必要もありません。これが、業界がクライアント アプリケーションからデータベースに直接アクセスしないことを標準化した理由です。

于 2015-12-21T18:15:35.173 に答える