Web安全:你必须知道的“Cookie安全”

时间: 2019-05-30阅读: 409标签: 安全

初识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属性

当用户从a.com发起b.com的请求也会携带上Cookie,而从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的数据及其容易被获取到。


来自:imooc编程手记(微信号:imooc--com)
作者:moweiyang0214  


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/3489

关闭

企业网站怎么才能防御DDOS***?

他想要做一个网络安全防护,因为网站设计到了支付这一块的业务,所以要做网络安全防护,想要实时监测,如果有***发生需要第一时间知道情况。墨者安全告诉他可以的,那今天就讲讲企业网站怎么才能防御DDOS***?

Js混淆安全加固

在安全攻防战场中,前端代码都是公开的,那么对前端进行加密有意义吗?可能大部分人的回答是,毫无意义,不要自创加密算法,直接用HTTPS吧。但事实上,即使不了解密码学,也应知道是有意义的,因为加密前和解密后的环节

网站被劫持的方式都有哪些?

网络安全日益严峻,站长朋友们多多少少都遇到过被黑被劫持的经历,对于老老实实做人,认认真真做站的朋友来说,好不容易做出了一点成绩,一劫持就又回到解放前了,本期我们一起来探讨常见的网站被黑被劫持的手段有哪些

谈 target=‘_blank’的安全问题

大家都喜欢target=_blank, 因为新页面打开不影响原来的页面。但是这个存在安全问题, 由target=_blank打开的页面, 可以通过window.opener访问原来的窗口。遍可以简单的将网页导航到其他网站, 这就存在很多的安全隐患了, 比如钓鱼,这种问题解决起来也很简单, 在链接中加入rel=noreferrer noopener属性就可以了

访问http网站Safari提示网站不安全怎么办?

macOS和iOS上的Safari在所有通过HTTP连接的地址栏中会显示“不安全”的警告。去年,谷歌Chrome和火狐MozillaFirefox是最先显示这种警告的主流浏览器。

14个Linux系统安全小妙招

对于互联网IT从业人员来说,越来越多的工作会逐渐转移到Linux系统之上,这一点,无论是开发、运维、测试都应该是深有体会。曾有技术调查网站W3Techs于2018年11月就发布一个调查报告,报告显示Linux在网站服务器的系统中使用率高达37.2%

利用CSS注入(无iFrames)窃取CSRF令牌

要做到无iFrame,我将使用一种类似于之前我讨论过的方法:我将创建一个弹窗,然后在设置计时器后更改弹出窗口的位置。使用这种方法,我仍然可以加载受害者的CSS,但我不再依赖于受害者是否允许iFrame。

利用HTML5标签进行DDoS攻击的新方法揭秘

在此次攻击活动中,DDoS攻击请求峰值达到了7500次请求/秒,在大概4个小时内攻击者总共利用了4000多个不同的用户向攻击目标发送了超过7000万次恶意请求。Imperva的研究人员在其发布的安全分析报告中指出

前端开发人员的10个安全建议

Web安全是前端开发人员经常忽略的主题。当我们评估网站的质量时,我们通常会查看性能,SEO友好性和可访问性等指标,而网站抵御恶意攻击的能力却常常被忽略。即使敏感的用户数据存储在服务器端

几种好用的经典webshell(php)

webshell就是以网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问php后门

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全运营推广