2013-02-28 17 views
5

我正在使用AJAX在網絡/移動應用程序上工作。該應用程序有4頁:登錄1和3保護頁面僅顯示登錄用戶。AJAX:單頁應用程序結構/安全

我打算使用單頁面應用程序模式,因此所有4個頁面都會立即加載,每個頁面都有自己的DIV ID,並且只有登錄名將在最初可見。

一旦用戶輸入他的用戶/密碼,我創建一個XMLHttpRequest並與一個內部PHP腳本進行通信,該腳本依次使用預準備語句來檢查用戶/密碼是否存在於數據庫中,並返回true或false XMLHttpRequest。

如果結果爲真,那麼我將使受保護的DIV可見並從服務器加載必要的數據,創建另一個XMLHttpRequest並通過另一個PHP腳本與數據庫接口。用戶在其他受保護頁面之間導航時重複此步驟。我還計劃實施cookie以保持用戶登錄,並再次使用XMLHttpRequest /內部PHP腳本。

下面是描述該過程的圖像。

問題

  • 這是否結構看行嗎?任何可能出現的問題我都不會預見?
  • 結構是否安全?任何方式我可以進一步加強它?

enter image description here

+0

JPEG並不是最適合保存此類圖表的格式。順便說一句,您使用的是HTTPS,不是嗎? – 2013-02-28 17:13:12

+0

是的我在PHP服務器端腳本上使用HTTPS。 – 2013-02-28 17:17:22

回答

4

即結構細,只要你保證數據的每個請求是由登錄系統的保護,防止數據服務到未經授權的用戶。

此外,您還需要確保在用戶註銷時,將所有數據從DOM中清除。這可以通過強制刷新頁面window.location.reload()或手動刪除所有包含數據並覆蓋任何變量的DOM節點來完成。考慮一個用戶使用你的應用程序,然後註銷,然後另一個用戶來使用相同的設備。如果在註銷時不刷新數據,第二個用戶未經身份驗證可能會打開任何DOM工具,例如Firebug/Chrome開發工具,並查看上次用戶的敏感數據。

不要忘記關注SQLi,XSS(包括基於DOM的XSS--不僅僅是反射/存儲的XSS)和會話安全性(會話劫持等)方面的一般Web應用程序安全性。

+0

我正在關注SQLi和XSS,但我忘記了從基於DOM和DOM的XXS中清除數據。好的提醒,謝謝。 – 2013-02-28 17:19:56