0

我正在開發一個Backbone.js中的單頁應用程序,其後端爲PHP。我以前從未開發SPA,所以我想知道如何妥善保護它。通過使用csrf令牌和基於令牌的身份驗證來保護請求是相對直接的。在單頁應用程序中更改視圖(路由)時的安全性

但是,我們如何確保前端視圖?這是否甚至是杞人憂天?

我還沒有發現任何關於此主題的文獻,除了建議的基於cookie的驗證。 Wunderlist使用了一個非常簡單的「LOGGEDIN = true」cookie,但如果我刪除它,我仍然可以瀏覽應用程序。

在我看來,我們有以下幾種選擇:

  • 要求服務器,如果我們登錄或不能當主視圖的變化,通過向例如請求/auth。這會起作用,但這似乎是浪費資源。

  • 使用一個簡單的cookie來檢查我們是否被允許改變視圖。不關心cookie的實際有效性。用戶請求資源時進行正確驗證。

我開始覺得第二個選項是不夠的,因爲更改視圖通常還需要某種資源的請求,但話又說回來,如果cookie不驗證,有什麼用呢它有?

回答

0
  1. 創建靜態login.html。
  2. 將用戶重定向到此頁面,以防萬一他沒有有效的cookie(GET)。
  3. 如果用戶沒有有效的cookie,則結束帶有401狀態碼的XHR。
  4. 只有登錄成功後才能重定向到SPA。
  5. 設置客戶端 - 重定向到登錄頁面,以防用戶遇到401錯誤代碼。

客戶端例如:

$(document).ajaxComplete(function(e, xhr) { 
    if (xhr.status === 401) { 
    // redirect to login.html 
    } 
}); 
相關問題