2013-02-22 46 views
4

我正在構建這個web應用程序,用戶可以使用html和javascript(這些上傳將在AWS S3上,而不是在服務器本身上)構建自己的在線演示文稿。他們將他們的域名連接到應用程序。我有以下設置,但想知道這是否是安全和/或風險最安全的設置,感謝您的幫助!使用SSL域名登錄到非SSL域的webapp

全球建立

  1. 當用戶登錄到從非SL域(http://userdomain.com)的管理,在登錄表單直接發佈憑據SSL登錄域(https://logindomain.com

  2. 在logindomain.com上進行驗證,並在新的PHP會話成功時啓動。該會話僅對userdomain.com有效。 session_id也保存在該用戶帳戶的數據庫中。

  3. 那麼這是SESSION_ID發送到userdomain.com超過$ _GET(2路加密)

  4. 添加userdomain.com的sended SESSION_ID被證實在數據庫中useraccount如果確定一個新的會話根據這個session_id開始。新會話完成後,會在數據庫中重新生成並更新session_id。本次會議是有效的在有限的時間(在條件會議timout而且在數據庫中)

  5. 用戶隨後被轉發到應用程序(非SSL),因爲他的loggedIn

  6. 在每一頁用戶會話根據session_id和有效時間窗口驗證到數據庫。

服務器不是共享主機設置,因此沒有其他共享sesssion數據的虛擬主機。

此登錄設置是否安全或如何更安全?

謝謝!歡呼聲

gr。丹尼斯

+0

要添加到Quentins的答覆 - 它不再是「昂貴」(指硬件資源),讓您的整個網站在SSL中,所以你應該考慮這一點。一般來說,您的應用程序的整體安全性會下降到最薄弱的環節,這意味着您的非零件:) – 2013-02-22 07:40:46

回答

3

當用戶登錄到從非SL域(http://userdomain.com)的管理,在登錄表單直接發佈憑據SSL登錄域(https://logindomain.com

這表明,形式,它通過HTTP提供服務。因此可以對其進行攔截和編輯,以便證書由攻擊者捕獲。這不安全。

用戶隨後被轉發到應用程序(非SSL),因爲他的loggedIn

包含(或將包含)需要是安全應該通過SSL發送的數據的任何頁面。一旦用戶登錄,您就不應該離開SSL,這樣做會使您暴露於Firesheep-style attacks

+0

謝謝。由於每個用戶都在自己的域中,我不希望他們獲得SSL證書來運行應用程序,這就是爲什麼我想讓後操作和會話開始在SSL上發生,然後他們在非sll上,但沒有敏感信息在登錄後結束 – Symtex 2013-02-22 07:50:18

+0

當表單在SSL上提供,然後安裝程序與上面描述的相同時,它是否安全? – Symtex 2013-02-22 07:51:35

+0

@Symtex - 不,你在登錄後仍然離開SSL,所以它仍然容易受到Firesheep風格的攻擊。 – Quentin 2013-02-22 09:10:51