日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cookie放在请求头_Web安全:你必须知道的“Cookie安全”

發布時間:2023/12/19 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cookie放在请求头_Web安全:你必须知道的“Cookie安全” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初識cookie

http是無狀態的請求響應。每次的請求響應之后,連接會立即斷開或延時斷開(保持一定的連接有效期)。斷開后,下一次請求再重新建立。在http連接時,通過cookie進行會話跟蹤,第一次響應時設置的Cookie在隨后的每次請求中都會發送出去。Cookie還可以包括登陸認證后的身份信息。

大多數瀏覽器限制每個域能有50個cookies左右。存儲的cookies最大值約為4kb,若超過這個值,瀏覽器就會刪除一些cookie。

刪除策略因瀏覽器而已。有興趣的朋友可以自己做深入研究。

刪除cookie的操作只需要設置過期值為過去的時間即可。cookie無法跨瀏覽器存在。

cookie的作用

同域內瀏覽器中發出的任何一個請求都會帶上cookie,無論請求什么資源,請求時,cookie會出現在請求頭的cookie字段中。
服務端響應頭的set-cookie字段可以添加,修改和刪除cookie,大多數情況下,客戶端通過JS也可以添加,修改和刪除cookie。
cookie經常用來存儲用戶的會話信息。比如,用戶登陸認證后的session,之后同域內發出的請求都會帶上認證后的會話信息,非常方便。所以攻擊者特別喜歡盜取cookie,這相當于盜取了在目標網站上的用戶權限。

Secure Cookie機制

Secure Cookie機制指的是設置了secure標志的cookie。Secure Cookie僅在https層面上安全傳輸,如果是http請求,就不會帶上這個cookie。

這樣能降低重要的cookie被中間人截獲的風險。
不過,也不是說可以萬無一失。因為secure cookie對于客戶端腳本來說是可讀可寫的,可讀就意味著secure cookie能被盜取,可寫意味著能被篡改,所以還是存在一定的風險。

HttpOnly屬性

Cookie的HttpOnly屬性,指瀏覽器不要在除HTTP(和 HTTPS)請求之外暴露Cookie。

一個有HttpOnly屬性的Cookie,不能通過非HTTP方式來訪問,例如通過調用JavaScript(例如,引用document.cookie),因此,不可能通過跨域腳本(一種非常普通的攻擊技術)來偷走這種Cookie。Facebook 和 Google 正在廣泛地使用HttpOnly屬性。
然而,目前的技術手段還是可以通過xss攻擊獲取httpOnly的cookie。有興趣的朋友可以延伸閱讀該篇:Stealing HttpOnly Cookie via XSS

Same-Site屬性

當用戶從http://a.com發起http://b.com的請求也會攜帶上Cookie,而從http://a.com攜帶過來的Cookie稱為第三方Cookie。
為了防止CSRF(Cross-site request forgrey)攻擊,可以使用SameSite屬性。

Set-Cookie: CookieName=CookieValue; SameSite=Lax; Set-Cookie: CookieName=CookieValue; SameSite=Strict;

  • strict:瀏覽器在任何跨域請求中都不會攜帶Cookie,這樣可以有效的防御CSRF攻擊,但是對于有多個子域名的網站采用主域名存儲用戶登錄信息的場景,每個子域名都需要用戶重新登錄,造成用戶體驗非常的差。
  • lax:相比較strict,它允許從三方網站跳轉過來的時候使用Cookie。

更多延伸閱讀:Using the Same-Site Cookie Attribute to Prevent CSRF Attacks

本地cookie與內存cookie

本地cookie與內存cookie,區別在于cookie設置的expires字段。

如果沒有設置過期時間,就是內存cookie。隨著瀏覽器的關閉而從內存中消失。
如果設置了過期時間是未來的某一個時間點,那這個cookie就會以文本的形式保存在操作系統本地,待過期時間到了才會消失。

很多網站為了提升用戶的體驗,省去每次用戶登陸的麻煩,采用本地cookie的方式,讓用戶可以在未來的一個月,或者半年,永久等時間段內不需要進行登陸操作。

這也意味著,用戶被攻擊的風險變大了。攻擊者通過xss得到這樣的本地cookie后,能夠在未來很長一段時間內,甚至是永久控制這目標用戶的賬號權限。

然而,即使采用內存cookie也存在一定的風險,攻擊者可以給內存cookie加一個過期時間,使其變成本地cookie,這樣還是無法避免以上的安全問題。說到底,用戶賬號是否安全與服務器端校驗有關,包括重要cookie的唯一性(是否可預測),完整性(是否被篡改),過期等校驗。

web性能與cookie

cookie在服務端和瀏覽器的通信中,主要依靠HTTP的響應頭和請求頭傳輸的,所以cookie會占據一定的帶寬。
前面提到瀏覽器會為每一次HTPP請求自動攜帶上Cookie信息,但是對于同站內的靜態資源,服務器并不需要處理其攜帶的Cookie,這無形中便浪費了帶寬。

在最佳實踐中,一般都會將靜態資源部署到獨立的域名上,從而可以避免無效Cookie的影響。

LocalStorage

LocalStorage也是瀏覽器本地存儲數據的一個地方,是HTML5的特性。目前已經十分普及了。然而,localStorage并不會像cookie那樣可以設置數據存活的時間限制。

只要用戶不主動刪除,localstorage存儲的數據就會永久存在。

因此不建議將敏感信息存儲在localstorage中,尤其用于身份驗證的數據。localStorage沒有對xss攻擊做任何防御機制,一旦出現xss漏洞,存儲在localstorage的數據及其容易被獲取到。


作者:陌未央

鏈接:http://www.imooc.com/article/286531

總結

以上是生活随笔為你收集整理的cookie放在请求头_Web安全:你必须知道的“Cookie安全”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。