建设境外网站,哈尔滨公司建站模板,wordpress 4.7优化精减,大型网络游戏排行榜问题
使用go的 github.com/gin-contrib/sessions库对session进行设置并获取时#xff0c;浏览器拒绝掉请求携带cookie#xff0c;体现在浏览器上为“被过滤掉的session”#xff0c;并携带小三角提示符。
基本概念
SameSite
Chrome 51 开始#xff0c;浏览…问题
使用go的 github.com/gin-contrib/sessions库对session进行设置并获取时浏览器拒绝掉请求携带cookie体现在浏览器上为“被过滤掉的session”并携带小三角提示符。
基本概念
SameSite
Chrome 51 开始浏览器的 Cookie 新增加了一个SameSite属性用来防止 CSRF 攻击和用户追踪。 它有三个值 Strict默认设置。完全禁止第三方 Cookie跨站点时任何情况下都不会发送 Cookie。换言之只有当前网页的 URL 与请求目标一致才会带上 Cookie。 Lax规则稍稍放宽大多数情况也是不发送第三方 Cookie但是导航到目标网址的 Get 请求除外。 None网站可以选择显式关闭SameSite属性将其设为None。不过前提是必须同时设置Secure属性Cookie 只能通过 HTTPS 协议发送否则无效。
domain
domain表示的是cookie所在的域默认为请求的地址如网址为www.test.com/test/test.aspx那么domain默认为www.test.com。 而跨域访问如域A为t1.test.com域B为t2.test.com那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.test.com如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.test.com。
path
path表示cookie所在的目录asp.net默认为/就是根目录。在同一个服务器上有目录如下/test/,/test/cd/,/test/dd/现设一个cookie1的path为/test/cookie2的path为/test/cd/那么test下的所有页面都可以访问到cookie1而/test/和/test/dd/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。
解决
了解了基本概念解决问题就很简单了。在程序中我既没有设置cookie的path导致设置cookie和获取cookie的api路径不一致也没有改变samesite和cookie Secure的值。 解决方法将domain/paht设置正确可以加上端口协议可以不加。 附加为了保险起见我同时也修改了samesite和cookie Secure的值代码体现如下 sess : sessions.Default(ctx)sess.Options(sessions.Options{Path: /,MaxAge: 648000,Secure: true,SameSite: http.SameSiteNoneMode,})