2012-08-15 83 views
-1

通過「安全」我的意思是數據訪問權限,例如:3層應用程序中的安全性:在哪一層?

  • 安德魯只具有隻讀到客戶端的訪問法國
  • 布萊恩可以在法國和德國
  • 查爾斯更新客戶端是管理員,他已閱讀並更新所有權利

我可以看到每個圖層的潛在參數。

  1. 數據訪問層

    的DAL只公開給用戶具有訪問客戶端,當用戶試圖做一些未經授權通過相應的錯誤到業務層。

    這簡化了上層,並且可以減少只能訪問一小部分數據的用戶的數據流量。

  2. 業務層

    ,因爲這是業務邏輯所在,只有業務層的安全性應該如何實現完整的知識。

  3. UI層

    的切線參數是因爲UI層是與認證交易的一個。 更強有力的論點是當應用程序具有非UI功能時:計算日常工作,存檔等。這些程序沒有安全上下文,創建虛構的「系統」用戶是維護的噩夢。

  4. 單獨的圖層?

    在3的內部有槽嗎?

我正在尋找一個令人信服的論據,它會讓我相信層X是大型三層應用程序的最佳選擇。請不要'取決於'答案;-)。

謝謝。

+0

@meagar是的,編號確實是更好:) – smirkingman 2012-08-15 20:16:13

+0

如果downvoters會添加評論來解釋爲什麼(給予改進的機會) – smirkingman 2016-04-22 08:53:49

回答

0

我想這可能是一個主觀的話題。儘管如此,我們遵循這個原則,永遠不要信任任何外部來源(例如數據穿越服務界限)。通常,現代應用程序與舊的客戶端 - 服務器三層模型有點不同,因爲它們通常是面向服務的(我認爲Web服務器也是一種服務)。

這排除了訪問檢查到客戶端的代表團 - 客戶可以瞭解允許訪問和使用這些信息來表現不同(如無法提供某些功能或左右),但最終只有哪些服務(服務器)決定允許計數。

另一方面,數據庫或DAL太低,因爲大多數檢查還取決於某些業務邏輯或外部信息(例如用戶角色)。所以這就排除了數據層;在我們的環境中,數據訪問是不受任何檢查的可信空間。最後,數據庫層和應用程序服務器形成一個邏輯單元(根據Roger Sessions Software Fortresses的書,可以稱之爲堡壘),其中不存在服務邊界。如果應用層訪問另一個服務,但它必須對接收到的數據進行檢查。

總之,您可能需要獲得Roger Sessions book的副本,因爲它確實爲大型應用程序提供了一些寶貴的意見和食物,以及如何處理安全問題和其他問題。