2012-10-03 57 views
0

我真的很想知道領域的用法http://en.wikipedia.org/wiki/Basic_access_authentication所述如何清除領域的憑證?

現有的瀏覽器保持的認證信息,直到標籤或 瀏覽器關閉或用戶清除歷史。[1] HTTP不爲 提供服務器的方法,以指示客戶端放棄這些緩存的憑證。這意味着 服務器無法在URL中關閉瀏覽器或使用 會話的情況下「註銷」用戶,但沒有有效的方法。

在我的編碼

res.setStatus(HttpServletResponse.SC_UNAUTHORIZED); 
res.setHeader("WWW-Authenticate", "Basic realm=\"Alfresco\""); 

因此,基於境界網站請求驗證。一旦請求,用戶名和密碼被保存在某個地方,直到瀏覽器緩存或瀏覽歷史記錄被刪除,這些信息纔會被保存。

我的問題是有沒有辦法使用servlet在服務器中清除這樣的證書? 任何幫助非常感謝!

編號: What is the exact uses of REALM term in security?

+0

瀏覽器緩存無法使用服務器端/客戶端代碼清除,因爲這將是一個巨大的安全漏洞。 – Vikdor

回答

1

服務器永遠不會有超過瀏覽器控制的這樣的水平。處理帳戶詳細信息泄漏的唯一安全方法是立即使帳戶失效或鎖定,並終止與其關聯的所有用戶會話。網絡服務器能夠完成所有這些操作。

spec

The realm attribute (case-insensitive) is required for all 
    authentication schemes which issue a challenge. The realm value 
    (case-sensitive), in combination with the canonical root URL of the 
    server being accessed, defines the protection space 

這基本上意味着,一旦成功認證後,瀏覽器可以安全地假定同根URL下的所有資源將使用相同的憑據訪問。沒有標準的方法來設置HTTP基本憑據的客戶端超時。