瀏覽器裡有餅乾(Cookie)?

「清除歷史紀錄、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)。

Reference

  1. Web 技術中的 Session 是什麼?
  2. HTTP Session 攻擊與防護
  3. 從防禦認識CSRF
  4. OpenSSL Heartbleed 全球駭客的殺戮祭典,你參與了嗎?
  5. 設定 Cookie 時可善用 HttpOnly 特性減低網站安全風險(XSS)
  6. 讓我們來談談 CSRF
  7. Code Injection Attack – Cross-Site Scripting Attack
  8. 高階資安懶人包 – PT、VA

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。