「清除歷史紀錄、Cookie、快取等資料」、「瀏覽器的Cookie功能已關閉」、「允許網站儲存及讀取Cookie資料」。我們常在使用瀏覽器時看到「Cookie」這個字眼,而它到底是什麼?和餅乾有什麼關係嗎?以下為您解答。
Cookie是什麼?可以吃嗎?
在瀏覽器中,Cookie指的其實並不是我們一般所說的餅乾,而是用來儲存網頁伺服器傳送給瀏覽器的資料,伺服器則是透過Cookie來判斷不同的使用者。
舉個簡單的例子,在購買飲料時,顧客會向飲料店下訂單,而在店家確認後會給顧客一個號碼牌。之後,不需要複誦訂單的內容,顧客只要將號碼牌交給店家,便可根據它來判斷此顧客是否下過訂單以及訂單的內容,並給予屬於該名顧客的餐點。
這個例子就如同是登入網站的動作,當輸入帳號密碼進行登入時(下訂單),網頁伺服器(店家)會回傳一組資料,瀏覽器將這些資料儲存在Cookie(號碼牌)裡。之後瀏覽這個網站便不需要再進行登入的動作,伺服器只要靠Cookie(號碼牌)就能知道登入者的身分。
會有餅乾怪想偷走我的Cookie嗎?
從上面的例子我們可以得知,只要透過Cookie伺服器就能知道登入者是誰。那麼如果其他人盜用了別人的Cookie是不是就會被偽造身分呢?
答案:是,只要Cookie被偷走了,便有可能被偽造身分。偷走Cookie的方法,在之前的文章「 Code Injection Attack – Cross-Site Scripting Attack (參考7)」 中所介紹的XSS攻擊就是其中一種;或者是在2014年OpenSSL的Heartbleed漏洞中,也有Cookie遭竊的可能性。
另外還有一種叫做「跨站請求偽造(Cross-site Request Forgery, CSRF)」的攻擊手法,也是利用Cookie來實現。此攻擊手法的情境如下,受害者登入A網站且其瀏覽器儲存伺服器回傳的資料於Cookie後,再瀏覽了惡意網站B。此時,B網站不需要知道受害者的帳號密碼,只要透過誘使受害者發送請求至A網站,便可讓受害者於A網站進行非本意之動作。(詳細可查看參考6)
面對可怕的餅乾怪,我的Cookie是安全的嗎?
以上所提到的攻擊與漏洞,都有因為Cookie而被偽造身分的可能性。現今已有針對這些攻擊手法與漏洞的對策。如Heartbleed漏洞,OpenSSL已推出修復的版本;CSRF攻擊也有利用驗證碼或Token來進行防禦的方法;而XSS攻擊也可以透過設定HttpOnly來降低Cookie被偷走的風險。
要怎麼確認我的網站沒有這些漏洞 (工商時間)
透過三甲科技所提供的「弱點掃描」以及「滲透測試」檢測服務,確保企業的內部網站不存在這些資安漏洞。想了解「弱點掃描」與「滲透測試」是什麼,可以閱讀此篇文章「 高階資安懶人包 – PT、VA 」(參考8)。