web網路安全---cookie篇

羅羅的1024發表於2021-01-02

什麼是Cookie

由於HTTP是一種無狀態的協議,伺服器單從網路連線上無從知道客戶身份。怎麼辦呢?就給客戶端們頒發一個通行證吧,每人一個,無論誰訪問都必須攜帶自己通行證。這樣伺服器就能從通行證上確認客戶身份了。這就是Cookie的工作原理。

Cookie具有不可跨域名性

提問:很多網站都會使用Cookie。例如,Google會向客戶端頒發Cookie,Baidu也會向客戶端頒發Cookie。那瀏覽器訪問Google會不會也攜帶上Baidu頒發的Cookie呢?或者Google能不能修改Baidu頒發的Cookie呢?

根據Cookie規範,瀏覽器訪問Google只會攜帶Google的Cookie,而不會攜帶Baidu的Cookie。Google也只能操作Google的Cookie,而不能操作Baidu的Cookie。

提問:同一個一級域名(luoluo.com)下的兩個二級域名如:pc.luoluo.com和h5.luoluo.com,可以互動使用同一個Cookie嗎?

正常情況下,同一個一級域名下的兩個二級域名也不能互動使用Cookie,因為二者的域名並不嚴格相同。如果想所有luoluo.com名下的二級域名都可以使用該Cookie,需要設定Cookie的domain引數,例如:

Cookie cookie = new Cookie("time","20080808"); // 新建Cookie
cookie.setDomain(".luoluo.com"); // 設定域名
cookie.setPath("/"); // 設定路徑
cookie.setMaxAge(Integer.MAX_VALUE); // 設定有效期
response.addCookie(cookie); // 輸出到客戶端

注意:domain引數必須以點(".")開始。另外,name相同但domain不同的兩個Cookie是兩個不同的Cookie。

相關文章