2017-03-20 32 views
0

在我們的應用程序中,我們基於用戶角色限制了路線(導航)。是否有必要實施Angular Guard以提供/限制對路線的訪問?實施Angular Guard的重要性

它是否以某種方式提供額外的安全性,而不是基於來自JavaScript/HTML/plain Angular的用戶角色來限制訪問(即通過顯示和隱藏鏈接以及顯示/隱藏數據)?

+1

他們只是一個方便的方法來做到這一點。使用它們沒有額外的安全性。無論如何,安全性必須在服務器上執行。 –

回答

4

角衛兵只是一個路由問題。它們是防止路由器導航到特定頁面的元素,無論它們如何觸發導航(通過鏈接,按鈕或直接輸入URL到地址欄)。然而,與任何JavaScript框架一樣,這種「安全性」並不是真正的安全性,但更多的用戶便利性。由於網絡的性質,任何人都可能會干擾客戶端(即瀏覽器)上的任何數據/代碼,因此,在客戶端JavaScript中實現的任何內容都不應被視爲真正的安全性。您必須在您的後端系統上實施真正的安全檢查。

另請注意,由於Angular Guards只是一個角度路由器的問題,因此如果您沒有使用官方的Angular路由器,則它們沒有任何意義。

+0

我們使用官方的Angular路由器;但不包括路線衛兵。如何通過在瀏覽器的地址欄中輸入直接URL來阻止用戶訪問數據?目前的限制只能在鏈接和按鈕上根據用戶角色隱藏它們。 – user3344978

+1

這實際上是路線衛兵的目的 - 防止這種情況。如果你不想使用路線衛兵,那麼你可以在你的單個組件中進行'路線衛隊'檢查,並在檢查失敗時讓他們離開用戶,但從字面上看,這與路線衛兵的目的相同,所以爲什麼不使用它提供的功能? – snorkpete