• Web Security 17.10.2014

    網站資訊安全測試 — Logout

    ID-10020618

    許多網站都繪有登入與登出的設計,登入因為需要帳號密碼,身分的驗證,所以相關的檢查相對會比較嚴謹

    相對來說登出 logout 所需注意的資訊安全常被忽略

    那麼 logout 會有哪些潛在的資訊安全風險與需要注意的地方呢?

     

    一個安全的 logout設計應該要包含下列項目:

    • UI 的設計讓使用者可以自己 logout,這當然是基本的需求, Logout的選項應該要在登入之後,出現在每一個頁面,通常是在畫面的最上方。
    • 當一段時間之後,自動 logout。例如,很多銀行網站在五分鐘內如果沒有動作,就會強迫logout
    • Session 在l ogout 之後會強迫失效, expire or invalid. 不能重複再被使用

     

    關於 Session 的測試

    通常 Session 會用 cookie 的方式存在,因此在 logout 之後,

    針對需要驗證的頁面,可以試著用 reload or refresh 看看該頁面是否還會顯示相關的資訊。

    最理想的狀況是,在logout 的狀態時,如果在次瀏覽到需要驗證的畫面時,

    應該要將該頁面導到登入的頁面

    最常見的攻擊行為是公用的電腦,因為 logout 之後快取的頁面資料,

    讓其他人可以存取相關隱私資料

    如果 logout 之後沒有將該資料清除,

    駭客有可能可以用瀏覽器的 Back 就可以看到之前 login 人的快取頁面的資料。

     

    因此,所有的網站應用程式都又該要具備自動 timeout logout 的機制。

    timeout 的時間長短的取捨就在於使用性與安全性的考量。

    • timeout 的時間太長,中間就會有許多風險被駭客利用
    • timeout 時間太短,使用者就必須常常重新登入,很麻煩

    另外,Session timeout 的管理與過期的控制應該要在 Web Server 端來強制設定。

    舉理來說,登入三次錯誤失敗,如果失敗的錯誤次數只有記錄在 client 端,

    駭客只要任意修改 client 端的設定值或是 cookie 就可以不斷的嘗試登入

     

    安全防護建議

    Logout的設計主要是要將 Authenticated token/session做一個結束,

    因此需要有

    1. 自動Timeout 的設計。

    2. Token/Session 不可重複被使用

    3. 使用者可以自行 logout

    4. Session 的管理與控制由Web Server 端決定

     

     

     

     

    Posted by Tony @ 11:07 pm

    Tags: , ,

  • Leave a Reply

    Your email address will not be published.