私は深く納得できないアーキテクチャ アプローチを扱っていますが、良い代替案が見つかりません。基本的に、私たちの会社はほぼ常に攻撃を受けています...つまり、私たちの公開 Web サイトに対するフィッシング、スプーフィング、ブルートフォーシングなどの攻撃が絶えず試みられているということです。Web アプリを 3 層構成 (層という意味であり、よく混同されるのでレイヤーではありません) で配置することが決定され、プレゼンテーション層はマシン上にあり、インターネットに公開されたサブネットにあり、残りはアプリケーションは内部サブネット上にあり、アプリケーション サーバーは基本的にプレゼンテーション サーバーまたはその他の内部システムに必要なすべてを公開し、データベース サーバーは明らかです。
現在、プレゼンテーションとビジネス ロジックの分離は、開発とパフォーマンスの両方の点で非常に重要です。データ アクセス専用の DLL を使用する方が、リモート サービスを呼び出して同じ操作を実行するよりも明らかに高速です。
一方、これはセキュリティを向上させるための最も実用的な方法と見なされてきました。この展開モデルでは、プレゼンテーション レイヤーはハッカーによって突破される可能性がありますが、それでも、そこからデータベースへのアクセスは得られません。重要な部分。
プレゼンテーション層とビジネス層の間の通信は、WCF サービスを介して行われ、認証された SOAP メソッドを公開します。
さらに、このアプローチは、すべてのビジネス ロジックを BL 層に配置し、プレゼンテーション層を非常に「ばかげた」ものにすることです。つまり、BL 層は単なるセキュリティで保護された DAL 層ではなく、すべてのロジックを含んでいます。
それは受け入れられるアプローチですか?そのようなシナリオを処理するためのよりスマートな方法がありますが、私たちは見逃していますか? BL をプレゼンテーション層に保持し、DAL だけを中間層に置きたいと思いますか? そして、どのような理由で?私たちの解決策についてかなり確信が持てないので、アドバイスを求めています。