假設您有一個Web應用程序,它爲用戶提供了自己的子站點上的站點(例如:awesome.super-cms.com
),並允許他們編輯HTML。進一步假設你在通配符子域Cookie中設置SessionID(「*.super-cms.com
」)。是否可以使用JavaScript + Cookies欺騙會話?
誰管理evil.super-cms.com
可以很容易地編寫從其他super-cms.com用戶抓住的SessionID一個JavaScript的用戶:
var session = $.cookie('SessionID');
// Now send `session` to evil.com
我的問題是:可能攻擊用戶這些收穫SessionIDs做壞事?例如,作爲另一個用戶的欺騙認證?
謝謝。我們使用的是Django,它允許您設置SESSION_COOKIE_DOMAIN來執行此操作。但是,這是一個不幸的情況,因爲我們真的希望讓用戶在不同子域之間進行身份驗證。 – 2010-01-12 05:07:22
Kyle:你仍然可以在域之間進行身份驗證,但只需要多做一點工作(確保所有到其他域的鏈接都包含一個特殊的查詢字符串,然後進行適當的驗證(這比較複雜,但這是一般想法,或者至少是類似的))。你*不需要*,他們訪問彼此的cookies。 – 2010-01-12 05:09:11