苹果cookie是打开还是关闭_cookie那些事
cookie的诞生
HTTP无状态:服务器无法知道两个请求是否来自同一个浏览器,即服务器不知道用户上一次做了什么,每次请求都是完全相互独立
交互式Web:客户端与服务器可以互动,如用户登录,购买商品,各种论坛等等
Cookie的诞生是为了解决HTTP无状态的特性无法满足交互式web
cookie交互原理
1、用户在输入用户名和密码之后,浏览器将用户名和密码发送给服务器,服务器进行验证,验证通过之后将用户信息加密后封装成Cookie放在请求头中返回给浏览器。
2、浏览器收到服务器返回数据,发现请求头中有一个:Set-Cookie,然后它就把这个Cookie保存起来,下次浏览器再请求服务器的时候,会把Cookie也放在请求头中传给服务器
3、服务器收到请求后从请求头中拿到cookie,然后解析并到用户信息,说明此用户已登录,Cookie是将数据保存在客户端的
cookie属性
属性 | 描述 |
HttpOnly |
标记为 Secure 的 Cookie 只应通过被HTTPS协议加密过的请求发送给服务端。使用 HTTPS 安全协议,可以保护 Cookie 在浏览器和 Web 服务器间的传输过程中不被窃取和篡改 |
Secure | 如果一个cookie被设置了Secure=true,那么这个cookie只能用https协议发送给服务器,用http协议是不发送的 |
Domain |
Domain 指定了 Cookie 可以送达的主机名。假如没有指定,那么默认值为当前文档访问地址中的主机部分(但是不包含子域名)。 像淘宝首页设置的 Domain 就是 .taobao.com,这样无论是 a.taobao.com 还是 b.taobao.com 都可以使用 Cookie。 在这里注意的是,不能跨域设置 Cookie,比如阿里域名下的页面把 Domain 设置成百度是无效的 |
Path |
Path 指定了一个 URL 路径,这个路径必须出现在要请求的资源的路径中才可以发送 Cookie 。比如设置 Domain 和 Path 标识共同定义了 Cookie 的作用域:即 Cookie 应该发送给哪些 URL |
Expires |
当 Expires 属性缺省时,表示是会话性 Cookie,像上图 Expires 的值为 Session,表示的就是会话性 Cookie。当为会话性 Cookie 的时候,值保存在客户端内存中,并在用户关闭浏览器时失效。需要注意的是,有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话性 Cookie 也会被保留下来,就好像浏览器从来没有关闭一样。 与会话性 Cookie 相对的是持久性 Cookie,持久性 Cookies 会保存在用户的硬盘中,直至过期或者清除 Cookie。这里值得注意的是,设定的日期和时间只与客户端相关,而不是服务端 |
SameSite |
SameSite 属性可以让 Cookie 在跨站请求时不会被发送,从而可以阻止跨站请求伪造攻击(CSRF) |
重定向原理
客户端向服务器发送请求的时候,服务器如果重定向的话,返回状态码301或者302给客户端,在响应头中存放location,location对应的值就是重定向地址,客户端收到状态码为重定向,直接浏览器本地进行访问
一次线上问题排查过程
问题现象:
企业微信A企业,集成两个移动审批,分别使用wx_third和multi_wx3,在企业微信中交替访问两个移动审批,发现其中一个没有走对应集成方案的单点登录,比如打开multi_wx3的移动审批,实际url地址中的为wx_third,并且实际换取到用户身份也不是实际的值
移动计划在同场景下的数据交互实例
摘要
1、URL:https://qy-ci.fdccloud.com/appcenter/dispatch/open?__tenant_id=my59844a86a6053&__wx_menu_id=54&__from=wx_third2、URL:https://qy-ci.fdccloud.com/plan- micro/my59844a86a6053/task/home/index?__from=wx_third3、URL:https://qy-ci.fdccloud.com/plan-micro/my59844a86a6053/task/home/index?__from=wx_third4、URL:https://qy-ci.fdccloud.com/plan-micro/my59844a86a6053/schedule/calendar/index?__from=wx_third#/message/index
批注:
1、请求分发地址dispatch/open,服务端告诉浏览器需要要重定向到真实的计划地址
2、浏览器开始请求真实的计划地址,服务端发现_from参数与cookie不一致,强制退出登录,并告诉浏览器再次重定向到当前页面,服务端同时设置了最新的cookie值与_from参数一致
3、浏览器再次请求计划的真实地址,同时携带了最新的cookie,重新进行了免登,移动计划再次告诉浏览器需要再次做重定向到计划的消息页面
4、浏览器开始请求计划的消息页面
移动审批在同场景下的数据交互实例
摘要
1、URL: https://qy-ci.fdccloud.com/appcenter/dispatch/open?__tenant_id=my59844a86a6053&__wx_menu_id=130&__from=multi_wx3
2、URL: http://qy-ci.fdccloud.com/workflow-micro/my59844a86a6053/workflow/process-list/index?kindType=1&status=0&__from=multi_wx3
3、URL: http://qy-ci.fdccloud.com/workflow-micro/my59844a86a6053/lists/process-list/index?kindType=1&status=0&__from=multi_wx3
4、URL: https://qy-ci.fdccloud.com/workflow-micro/my59844a86a6053/lists/process-list/index?kindType=1&status=0&__from=multi_wx3
批注:
1、请求分发地址dispatch/open,服务端告诉浏览器需要要重定向到真实的审批地址
2、浏览器开始请求真实的审批地址,移动审批在actions()方法中拦截到了当前是新服务,然后告诉浏览器要重定向到
新服务地址
3、浏览器开始请求移动审批的新服务地址,此时vendor beforeAction()检测到当前请求的地址是http协议,告诉浏览器需要重定向到https,并且把最新的cookie返回给了浏览器
4、浏览器开始请求https的审批地址,直接进入了应用,前面没有做任何退出登录,也不满足_from参数和cookie的值不一致,此时的用户实际身份还是上一个集成方案对应的用户
总结:
为何审批的执行流程和计划相差这么大,正是这个差别导致计划表现正常而审批发生串号的问题所在。
问题根源在于我们期望是在beforeAction()中实现检测__from的变更,从而实现退出登录,通过重定向再次登录的逻辑。但是审批比较特殊,他们在几个重要的控制器中重写了actions()方法,他们也会做重定向,而且actions()是在beforeAtion()之前执行的,最新的cookie已经被审批返回给浏览器了,下次再进入最终的审批页面时,beforeAction()是检测不到变更的,自然也实现不了退出登录再重新登录
苹果cookie是打开还是关闭_cookie那些事相关推荐
- Xcode苹果iOS硬件编程实现iPhone XR打开或关闭电灯
之前我们已经给广大爱好者或程序员朋友们,带来了硬件版的或者说物联网版本的Hello World C++Builder/Delphi/VB.net/Python版的程序源码和教学资料,让大家对硬件控制带 ...
- ubuntu 如何关闭离线模式_如何在macOS中打开或关闭Mac暗黑模式
苹果在macOS Mojave中为Mac引入了暗模式.暗模式是系统级别的设置,可与Mac随附的所有应用一起使用.第三方应用也可以选择使用暗黑模式.暗黑模式使您更轻松地专注于工作,并且对眼睛也很容易.装 ...
- 屏幕正中间浮窗html,HTML 纯css浮窗居中和打开or关闭
HTML 纯css浮窗居中和打开or关闭 .fixed{ position: fixed; left: -100%; right:100%; top:0; bottom: 0; text-align: ...
- 最近发现有很多人一直在问苹果ID双重认证怎么关闭。
最近发现有很多人一直在问苹果ID双重认证怎么关闭? 其实我想说大家都粗心了,双重认证是和ios版本没有关系的,无论什么IOS版本开通的双重认证都是可以关闭的. https://support.appl ...
- 打开和关闭wifi和移动数据链接
最新实战教程,让你了解Android自动化刷量.作弊与防作弊的那些事,案例:刷友盟统计.批量注册苹果帐号 前一段时间,公司里面有一个这样的需要,就是要控制用户的连网方式,当时一听,wifi还好控制啦, ...
- Mac使用技巧:怎样打开、关闭屏幕共享!
如何打开或关闭Mac屏幕共享?您可以使用屏幕共享在离开时访问您的 Mac,在其他人的 Mac 上解决问题,或者就网站或演示文稿等项目与其他人展开协作. 如果在 Mac 上启用了屏幕共享,则可以从网络上 ...
- ios获取新数据要不要关_ios13低数据模式什么意思要不要打开 开启关闭设置教程...
ios13低数据模式什么意思要不要打开 开启关闭设置教程 虽然使用无限流量套餐的用户越来越多,但根据 Apple 的调查显示,绝大多数 iPhone 和 iPad 用户还是会密切关注自己的蜂窝网络数据 ...
- C++ 笔记(21)— 处理文件(文件打开、关闭、读取、写入)
C++ 提供了 std::fstream ,旨在以独立于平台的方式访问文件. std::fstream 从 std::ofstream 那里继承了写入文件的功能,并从 std::ifstream 那里 ...
- Matlab学习笔记——文件的打开与关闭
写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 文件的打开与关闭 1.fopen函数 2.fclose函数 文件的打开与关闭 1.fopen函数 用于打开文件,其 ...
最新文章
- 区块链 + 大数据:EOS存储
- R语言数据结构之列表
- 网站如何布局才能更利于提升用户体验?
- 对OCR文字识别软件进行自动分析和识别设置的教程
- JSP Cookie案例
- 神经网络,流形和拓扑Neural Networks, Manifolds, and Topology
- Simple2D-15(音乐播放器)使用 glfw 库
- Spark utils —— 设置日志级别
- 服务器虚拟机操作系统,服务器虚拟机操作系统
- 智能合约语言 Solidity 教程系列5 - 数组介绍
- C++封装继承多态理解
- 驱动精灵万能网卡版单文件版 v9.61
- 矩阵的特征值与特征向量 求解
- pycharm新建项目时选择virtualenv与existing interpreter
- 如果iis的配置文件 applicationHost.config坏掉了, 会在 C:\inetpub\history\ 中存储历史备份。复制过去还原就可以了-摘自网络...
- mac 打开网页慢_在Mac电脑开启Safari速度总是很慢?可以试试这10种解决方法
- uefi+guid分区与legacy+mbr分区_硬盘分区表格式GUID和MBR知识普及
- java面试突击-2022最新迭代redis\mq\springCloud-纯手打
- C#网络编程 - 局域网聊天室(UDP)
- Selenium IDE录制脚本——Chrome浏览器使用介绍
热门文章
- Android融云会话及会话列表的实现
- adobe xd_如何在Adobe XD中创建简历简历网站模板
- 编程python入门可以嘛_我为什么选择python——对于编程零基础的人为什么建议从Python入门...
- LUNA崩了背后的原因
- java io 阻塞io_Java 阻塞IO-Java BIO-嗨客网
- 【解决方案】SkeyeVSS视频安防综合管理系统助力解决夜吃烧烤安全隐患,为夜市安全保驾护航
- 程序员客栈TOP收入的萌系开发者心得-雨晴
- 阿里巴巴为新项目收购两枚双拼域名?
- GB 15981消毒与灭菌效果的评价方法与标准
- 百度Aistudio飞桨七日游体验python爬虫和分析数据