当前位置:   article > 正文

cookie 在什么时候会跨域携带_cooker为什么可以跨域

cooker为什么可以跨域

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
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号