2011-10-03 25 views
0

我正在查看mochiweb的源代碼,並看到測試cookie過期時間的數字與我已繼承的服務器的行爲完全不同。 mochiweb在源代碼中擁有111和86417(一天加17秒),但它看起來只能通過cookie到期並且在測試代碼中執行任何操作。 (請參閱mochiweb_cookies.erl)如何在mochiweb中設置自動註銷時間?

我正在查看的服務器在大約10-15分鐘內超時用戶,但無處可見我設置cookie值的任何代碼,也沒有看到任何代碼路徑通過mochiweb來源,甚至可以讓我設置它。

任何想法?

+0

你的問題的第一部分是相當含糊不清的。你到底在找mochiweb_cookies.erl的內容? –

回答

3

這裏真的有兩個問題:「我的應用程序如何執行會話到期?」和「如何使用mochiweb_cookies設置cookie?」沒有進一步的信息,只有第二個可以合理地回答。

Req:ok("text/plain", 
     [mochiweb_cookies:cookie("session", "my-session-id", [{max_age, 86417}])], 
     "you're logged in!") 

mochiweb_cookies:餅乾/ 3返回一個{"Set-Cookie", "headervalue"}一對適合作爲在mochiweb_request:respondmochiweb_request:okResponseHeaders參數的值。

當然可以在不使用mochiweb_cookies模塊的情況下在mochiweb中設置cookie,它們只是標題而已。您的應用程序可能會通過手工創建標頭來設置Cookie,或者代理或同一域中託管的其他應用程序服務可能正在設置Cookie。

這就是說,如果可能的話,你應該避免依靠cookie到期註銷用戶。最大年齡實際上只是瀏覽器在該時間過去之後停止發送cookie的暗示。瀏覽器或攻擊者可能總是行爲不端並無限期地發送cookie。