Tuesday, May 22, 2007

web login howto

client登入後, 如何保持這個session的存在與否, 會是個關鍵

一個簡易的keep session方法
1) 檢查帳號/密碼是否正確
2) server產生一個random string, 透過cookie, 送給client
3) 設定idle timeout時間, 由server內部進行計時
4) client每次瀏覽網頁, 會送出這個random string, server檢查是否正確
5) 登出後, 或timeout後, server移除這個random string

注意,
由於透過cookies, 所以必須強制client打開cookie選項, 如何檢查是否打開
Solution 1)
1.1 server設定cookie of the random string後, 送給browser,
並要求做302 redirect到check cookie的頁面.
1.2 Redirect過來的頁面, 如果沒有帶cookie option, server回應"要求打開cookie"的頁面,
如果有帶cookie option, 並且正確, server再redirect browser到正確的頁面

安全考量
由於cookie是明文, 並沒有加密過, 除非透過ssl, 否則很容易被第三者得知

No comments: