http://www.runoob.com/php/php-cookies.htmlphp
http://www.mahaixiang.cn/seoyjy/189.htmlhtml
http://www.4oa.com/Article/html/6/34/496/2005/17981.html數據庫
http://www.rfc-editor.org/rfc/rfc6265.txt瀏覽器
腳本攻擊安全
儘管cookie沒有病毒那麼危險,但它仍包含了一些敏感信息:用戶名,計算機名,使用的瀏覽器和曾經訪問的網站。用戶不但願這些內容泄漏出去,尤爲是當其中還包含有私人信息的時候。
這並不是危言聳聽,一種名爲跨站點腳本攻擊(Cross site scripting)能夠達到此目的。一般跨站點腳本攻擊每每利用網站漏洞在網站頁面中植入腳本代碼或網站頁面引用第三方法腳本代碼,均存在跨站點腳本攻擊的可能,在受到跨站點腳本攻擊時,腳本指令將會讀取當前站點的全部 Cookie 內容(已不存在 Cookie 做用域限制),而後經過某種方式將 Cookie 內容提交到指定的服務器(如:AJAX)。一旦 Cookie 落入攻擊者手中,它將會重現其價值。
建議開發人員在向客戶端 Cookie 輸出敏感的內容時(譬如:該內容能識別用戶身份):
1)設置該 Cookie 不能被腳本讀取,這樣在必定程度上解決上述問題。
2)對 Cookie 內容進行加密,在加密前嵌入時間戳,保證每次加密後的密文都不同(而且能夠防止消息重放)。
3)客戶端請求時,每次或定時更新 Cookie 內容(即:基於第2小條,從新加密)
4)每次向 Cookie 寫入時間戳,數據庫須要記錄最後一次時間戳(防止 Cookie 篡改,或重放攻擊)。
5)客戶端提交 Cookie 時,先解密而後校驗時間戳,時間戳若小於數據數據庫中記錄,即意味發生攻擊。
基於上述建議,即便 Cookie 被竊取,卻因 Cookie 被隨機更新,且內容無規律性,攻擊者沒法加以利用。另外利用了時間戳另外一大好處就是防止 Cookie 篡改或重放。
Cookie 竊取:蒐集用戶cookie併發給攻擊者的黑客。攻擊者將利用cookie信息經過合法手段進入用戶賬戶。
Cookie 篡改:利用安全機制,攻擊者加入代碼從而改寫 Cookie 內容,以便持續攻擊。