• Cookie 概述


    一、属性介绍

    img

    • Name

      Cookie的key

    • Value

      Cookie的value

    • Domain

      可以访问此Cookie的域名

    • Path

      可以访问此Cookie的页面路径

    • Expires/Max-Age

      Cookie的生命期,不设置默认值是一次会话,浏览器进程关闭后,此Cookie失效

    • Size

      此Cookie大小

    • HTTP

      设置HttpOnly为true,则只有在http请求头中会带有此Cookie的信息,不能通过Document.cookie来访问此Cookie信息,防止XSS攻击

    • Secure

      是否只能通过HTTPS协议来与WEB服务器之间传递此条Cookie数据

    • SameSite

      用于定义Cookie如何跨域发送,用于阻止CSRF攻击,有两个属性Strict和Lax

    详细介绍

    二、跨域问题

    1.Domain和Path的默认值

    img

    Domain默认html文件所在的域名,Path默认为html文件所在的路径

    2.Domain设置规则

    • 设置—js设置domain要符合域名的规则,可设置成 baidu.com,但是不能设置成baidu。不可以把cookie设置成不同于html域名的domian。会设置不成功。但不会影响后面程序对cookie的操作。如果domain设置错误,该cookie将不会被创建,并且后续对cookie的操作都会被浏览器禁止。js手动设置cookie的domain都是以.开头的。比如设置成 baidu.com,实际为 .baidu.com,删除cookie时可不加.
    • 获取—js只能获取domian大于等于当前页面域名的cookie。如 www.baidu.com/testCookie.html 页面中的js能获取domain为 www.baidu.com 和 .www.baidu.com 和 .baidu.com,获取不到 news.baidu.com 中的cookie
    • 删除—domain值必须跟要删除cookie的domain相同

    3.Path设置规则

    • 设置—js设置path要以”/”开头,如html路径为”/blog/20160623/”,路径可以设置成”/”或”/blog”, 如果path不是以”/”开头,则创建cookie的path会使用默认path;如果是以”/”开头,但是设置错误,路径名不存在或者直接设置成子路径。比如设置成”/20160623”,该cookie不会被创建,并且后续对cookie的操作不论正确与否都会被浏览器禁止
    • 获取—js只能获取path大于等于当前页面path的cookie,如html路径为/blog/20160623/,使用js只能获取/blog/20160623/和/blog和/路径下的cookie
    • 删除—js删除cookie时路径必须相同

    页面能访问那些Cookie和从哪里引入js没有关系,跟Html文件所在的domain和path有关系。Cookie只能跨二级域名来访问,不能跨一级域名来访问。js删除一个cookie,domain和路径必须完全相同。

    三、小实例

    1.同域情况

    namedomainpath
    a a.baidu.com /
    b a.baidu.com /tmp
    c a.baidu.com /abc
    d a.baidu.com /abc/def

    /下的页面只能访问a
    /tmp下的页面可以访问a,b
    /abc下的页面可以访问a,c
    /abc/def下的页面可以访问a,c,d

    2.不同域情况

    namedomainpath
    a a.baidu.com /
    b b.baidu.com /tmp
    c c.baidu.com /abc
    d d.baidu.com /abc/def

    a,b,c,d不能同时被访问,指定域下的路径中的网页才能访问对应的Cookie
    想要同时被访问就需要把domain修改为一级域 baidu.com,之后的规则就是同域情况了


  • 相关阅读:
    ubuntu一般软件安装在什么目录
    Swing是一把刀
    eclipse 3.6的VE配置 Visual Editor for eclipse3.6
    有关import sun.audio.AudioPlayer(或者其它文件)的问题
    ubuntu 下安装jdk
    linux查看java jdk安装路径
    关于绿色
    Swing如何正确的处理界面中的线程(EDT)
    在Eclipse4.2x中安装最新版插件WindowBuilder
    Eclipse java swing开发环境
  • 原文地址:https://www.cnblogs.com/jhxxb/p/11736124.html
Copyright © 2020-2023  润新知