• 徐海浪
    2019-07-10
    1. 如果 Cookie 的 Max-Age 属性设置为 0,会有什么效果呢?
    设置为0,服务器0秒就让Cookie失效,即立即失效,服务器不存Cookie。
    2. Cookie 的好处已经很清楚了,你觉得它有什么缺点呢?
    好处:方便了市民
    缺点:方便了黑客:)

    作者回复: √

    
     14
  • Fstar
    2019-07-11
    1. (我修改 Lua 文件测试了一下)如果 Max-Age 设置为0,浏览器中该 Cookie 失效,即便这个 Cookie 已存在于浏览器中,且尚未过期。另外 Web 应用开发中,可以通过这种方式消除掉用户的登陆状态,此外记得在服务器的 session 中移除该 cookie 和其对应的用户信息。
    2. Cookie 的缺点:
    (1) 不安全。如果被中间人获取到 Cookie,完全将它作为用户凭证冒充用户。解决方案是使用 https 进行加密。
    (2)有数量和大小限制。另外 Cookie 太大也不好,传输的数据会变大。
    (3)客户端可能不会保存 Cookie。比如用 telnet 收发数据,用户禁用浏览器 Cookie 保存功能的情况。
    展开

    作者回复: good。

    
     7
  • 放开那个猴子
    2019-07-10
    广告追踪没看明白呀,能否详细讲讲

    作者回复: 是这样的,网站的页面里会嵌入很多广告代码,里面就会访问广告商,在浏览器里存储广告商的cookie。

    你换到其他网站,上面也有这个广告商的广告代码,因为都是一个广告商网站,自然就能够读取之前设置的cookie,也就获得了你的信息。

     2
     7
  • WL
    2019-07-10
    对于XSS和XSRF一直不是很理解希望老师帮忙解答一下:
    1. XSS攻击是指第三方的JS代码读取到浏览器A网站的Cookie然后冒充我去访问A网站吗?
    2.XSRF是指浏览器从A网站跳转到B网站是会带上A网站的Cookie吗?这个不是由Domain和Path已经限定了吗?

    作者回复: 1,是的。

    2.你理解的反了,应该是带上B网站的cookie。

    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies

    这个链接里举的例子也许能够帮助你理解。

    
     7
  • 业余草
    2019-07-10
    属性“HttpOnly”、“Secure”、“SameSite”很少见,老师可以给几个配套例子,后面答疑篇,可以来个攻防实战!

    作者回复: 其实并不少见,上几个大站,用开发者工具看看就能看到。

    
     6
  • 饭饭
    2019-07-10
    Max-age:-1 的时候会永久有效吧 ?

    作者回复: rfc里有说明,如果max-age <=0,统一按0算,立即过期。

    
     5
  • cp3yqng
    2019-07-10
    域名+路径的方式存储cookie,感觉像只有一台业务服务器,那后台如何过分布式系统呢,用户中心是一个系统,核心业务是其他的系统,这里cookie肯定要共享,应该有一级域名和二级域名等等的概念吧,麻烦老师在解释解释。我本人是做移动端开发的,都是自己把token写在网络底层的请求头中,其实核心思想是一样的,但是缺点就是所有的域名里面都带token,这样也不好,好像还有优化的空间。

    作者回复: 只要cookie设置了domain和path属性,浏览器在访问uri时就会根据这两个属性有选择地发送cookie。

    需要根据自己的业务需求,恰当设置cookie的作用域,太大太小都不好。

    
     4
  • 业余爱好者
    2019-07-10
    1.Max-Age: 是永久有效的意思。
    2.cookie在浏览器端禁用,还有就是安全性,因为在本地是明文存储的

    作者回复: 1不对,max-age=0,就是立即过期,不允许缓存,只能在浏览器运行期间有效。

    
     4
  • Geek_66666
    2019-08-15
    既然max-age=0会立即失效,那不就等于无记忆了?那干嘛还用cookie?

    作者回复: max-age=0是指不能缓存,但在会话期间是可用的,浏览器会话关闭之前可以用cookie记录用户的信息。

    
     3
  • 院长。
    2019-07-11
    老师我是那个回复URI会跳转的那个,其他的测试案例也都会跳转。
    您说的实验环境openresty需要我配置什么嘛?我应该是顺着看您的文章的,您专栏里哪一章有介绍我漏看的吗?
    如果是我漏看的麻烦老师说下在哪一节,谢谢老师啦。

    作者回复: 感觉是dns域名解析被缓存了,走了其他真实网站,没有使用本地的hosts文件,可能要清理系统的域名缓存,具体方法可以搜一下。

    
     3
  • 大小兵
    2019-07-10
    要是能把session和token也说一下就好了

    作者回复: 这个不在http范围之内,而且篇幅有限,还望见谅。

    
     3
  • chengzise
    2019-07-10
    老师好,我理解的广告跟踪那个原理是:用户访问A网站,A会给用户设置cookies(T),用户再次访问网站B时,浏览器会带上cookies(T),B网站就能够识别到被A标记的用户。这里A给用户设置的cookies里面是不是把domain设置为B网站?不然凭什么访问B网站的时候,浏览器会带上A设置的cookies。

    作者回复: 在这个场景里B是“第三方cookie”,不是A设置的,所以只要在页面里嵌入了B相关的代码,就会带上B的cookie。

    完全弄清楚可能还需要一点html的知识。

    
     2
  • 許敲敲
    2019-12-26
    还有个名词,session 这个适合cookie放在一起的,这个老师能简单解释下嘛?

    作者回复: session是指服务器保持与客户端的会话过程,利用了cookie来存储会话信息,它是服务器上的概念。

    session本身与http关系不大,是在http的应用过程中出现的,基于cookie,是cookie的一个具体应用实例。

    
     1
  • kissingers
    2019-12-10
    哈哈,就是九品芝麻官里的半个烧饼:你后人凭这个来找我

    作者回复: nice。

    
     1
  • 彧豪
    2019-07-21
    话说现在还有用cookie的吗?感觉似乎不是太安全吧,毕竟各种明文传输,我司是这么做的:浏览器登录成功, 服务端会设置一个密文的cookie, 然后浏览器再用带着这个cookie值的请求头字段去请求用户信息的接口来获取用户信息, 当然了还有其他的头字段,然后登陆之类的接口中的相应头也看不到set-cookie字段,但是浏览器的cookie中却能被设置上一个cookie键值对,以及是密文的

    作者回复: 有些公司为了兼容性还是用cookie的。

     2
     1
  • 院长。
    2019-07-11
    为什么我输入http://www.chrono.com/19-1之后,很快就跳到另外一个URI了呀,我还没来得及看network里面的19-1,就给跳没了。
    另一个URI(里面包含detecdor.js,favicon.ico,redirect.php......,tcerider.php......等四个文件):http://www.chrono.com/search/tcerider.php?f=http%3A%2F%2F660.dragonparking.com%2F%3Fsite%3Dchrono.com%26t%3D1562811636000%26s%3Deab4b898c9f4e1c6333ee353d2b8cfdc%26fs%3D0%26channel%3D480306&amp;v=YWE2MDE5OTEyYjg2MjRkNTYxN2Y4YjA1MGIzNjNjM2QJMQl3d3cuY2hyb25vLmNvbTVkMjY5Y2Y0OGQ0NjkyLjY0NjM1MDA4CXd3dy5jaHJvbm8uY29tNWQyNjljZjQ4ZDRjNjYuOTc5MjA5NDgJMTU2MjgxMTYzNglhZF80NF8w&amp;l=NglBRFMJNTk4MmNiYjYyZmVhNTQ4ZDA0ZDk3OTg4MjUyZWYwZDYJMAk4CQkzMQkxCTEJMAkwNzcyNDg5ODc0ZDU4ZDkyMmZkM2QyMmY0ZDRhNmFhNAkJMTgxNzQ4OTMxCWMJMjU3Mzc3MDAwCQljaHJvbm9ncmFwaCx3YXRjaGVzLHVzZWQgd2F0Y2hlc%2BKAjixjaHJvbm9ncmFwaCB3YXRjaGVzLGx1eHVyeSB3YXRjaGVzCTExMDEJNDQJMTUJOTUJMTU2MjgxMTYzNgkwCU4JMAkwCTAJCQkJCQl3d3cuY2hyb25vLmNvbTVkMjY5Y2Y0OGQ0NjkyLjY0NjM1MDA4CTAJCTEJODMwCTEyNjIJMjk1NDI5MTIJCTEyMS4yMjQuMTExLjU%3D
    展开

    作者回复: 之前的测试用例是否正常?可能是域名解析到外网了,没有走实验环境的openresty。

    
     1
  • 居培波
    2019-07-10
    正常需要服务器输出cookie值value时会加密,这样稍安全点。

    作者回复: √

    
     1
  • 威~~微冷。。。
    2019-07-10
    收获不少。老师说的这些多是建立在浏览器也就是B/S模式下,浏览器帮忙解析并本地存储,在发起请求的时候请求头还自动加上cookie。那要是C/S模式下,脱离了浏览器,比如说安卓客户端,这时候要达到类似cookie这样的效果,是不是需要安卓开发人员自己解析响应,然后再存储,最后再组装请求体像后台服务器发请求吗???

    作者回复: 是的,相对于你自己扮演了浏览器的角色。

    不过也许api提供了类似的整合功能,需要查一下资料。

    
     1
  • 响雨
    2019-07-10
    Max-Age=0,cookie就会马上失效了。cookie的明文存储肯定不安全的。
    Flask开发中,Flask-session提供了将session_id存储在cookie中的方法,这样cookie就不需要存储敏感数据,通过session_id从后端获取session数据,然后session中存放用户的数据。

    作者回复: √

    
     1
  • 小美
    2019-07-10
    比如域名A,是不是能获取到用户所有的cookie(包括B域名)这样不是很不安全

    作者回复: 这个就是跨站的问题,通常cookie都会设置作用域,浏览器会保证只发给对应的网站,不会那么简单地泄漏。

    
     1
我们在线,来聊聊吧