发表于: 2018-04-06 23:34:15
1 636
今天完成的事情:
1、Cookie, LocalStorage 与 SessionStorage
这三个都是用来保存数据的,它们的异同如下:
相同点:
Cookie, LocalStorage 与 SessionStorage都保存在浏览器端,且是同源的。
不同点:
1:cookie 数据始终在同源的http请求中携带,而 webStorage 不会再请求中携带,仅仅在本地存储。
2:存储大小区别,cookie 是4k,webStorage 可以达到5M甚至更大。
3:数据有效时间区别: sessionStorage 仅仅是会话级别的存储,它只在当前浏览器关闭前有效,不能持久保持。localStorage 始终有效,即使窗口或浏览器关闭也一直有效,除非用户手动删除,其才会失效;cookie 只在设置的 cookie 过期时间之前一直有效。
4:作用域区别:sessionStorage 不在不同的浏览器窗口中共享,即使是同一个页面; localStorage 和 cookie 在所有同源窗口是共享的。
5:Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。
6:cookie还需要指定作用域,不可以跨域调用。
2、Httponly
要理解HttpOnly的作用,要先弄懂XSS攻击,即跨站脚本攻击,大伙可以Google一下看看XSS到底是什么,来自wikipedia的解释:
跨网站脚本是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意使用者将代码注入到网页上,其他使用者在观看网页时就会受到影响。这类攻击通常包含了HTML以及使用者端脚本语言。
而httponly在一定程度上解决了这个问题(并没有完全解除xss攻击),给cookie设置httponly属性,会让恶意的javascript代码读取不到我们的cookie。
网上看到的一段话:
HttpOnly 主要是为了限制web页面程序的browser端script程序读取cookie, 实际是浏览器通过协议实现限制的,黑客可不会那么傻,肯定不会用HTTP协议来读取cookie,肯定是在socket层面写抓包程序,相当于写一个低于IE6版本的应用程序。
3、弄清楚了我的代码,为什么不能正确生成用户信息的Token。跨域访问response响应体里面的
set-cookie会失效。因此虽然cookie正确的添加带response里面,但是在客户端会失效。
4、另外整合了redis缓存。这个之前已经做过了。这次只是修改了少部分,就不贴图了。
明天计划的事情:
学习XSS攻击。
遇到的问题:
状态不好,持续低迷
收获:
为了找出不能正确生成cookie的原因,杂七杂八的东西了解了一点。
评论