Cookie是什么

Cookie是什么:Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

一、Cookie是什么

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序。

所谓“cookie”数据是指某些网站为了辨别用户身份,储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

通俗来讲就是指缓存数据,包括用户名、密码、注册账户、手机号等公民个人信息。

二、安全威胁

Cookie捕获/重放

攻击者可以通过木马等恶意程序,或使用跨站脚本攻击等手段偷窃存放在用户硬盘或内存中的Cookie。借助网络攻击手段,包括在不安全的局域网中被动地监听网络通信;通过攻击网络用户的路由器,或通过搭建恶意的无线路由器等手法,控制路由基础设施,将网络流量重定向到攻击者控制的主机;发动DNSPharming(域欺骗)攻击,通过DNS缓存中毒、DNS应答欺骗、或修改用户端的本地域名解析文件等方法攻击DNS系统,导致用户对合法网站的访问请求被重定向到恶意网站等等,同样可能窃取Cookie。对于捕获到的认证Cookie,攻击者往往会猜测其中的访问令牌,试图获取会话ID、用户名与口令、用户角色、时间戳等敏感信息;或者直接重放该Cookie,假冒受害者的身份发动攻击。

恶意 Cookies

Cookies 是文本文件, 一般情况下认为它不会造成安全威胁。 但是,如果在 Cookies 中通过特殊标记语言,引入可执行代码,就很可能给用户造成严重的安全隐患。HTML 为区别普通文本和标记语言,用符号“<>”来指示HTML 代码。 这些 HTML 代码或者定义 Web 网页格式,或者引入 Web 浏览器可执行代码段。 Web 服务 器可以使用Cookies 信息创建动态网页。假使 Cookies 包含可执行恶意代码段,那么在显示合成有该 Cookies 的网页时,就会自动执行这段恶意代码。当然,恶意代码能否真正造成危害,还取决于Web 站点的安全配置策略。

会话定置

会话定置(Session Fixation)攻击是指,攻击者向受害者主机注入自己控制的认证Cookie等信息,使得受害者以攻击者的身份登录网站,从而窃取受害者的会话信息。注入Cookie的方法包括:使用跨站脚本或木马等恶意程序;或伪造与合法网站同域的站点,并利用各种方法欺骗用户访问该仿冒网站,从而通过HTTP响应中的Set-Cookie头将攻击者拥有的该域Cookie发送给用户等。

CSRF攻击

跨站请求伪造(Cross-Site Request Forgery,简称CSRF)是指,攻击者可能利用网页中的恶意代码强迫受害者浏览器向被攻击的Web站点发送伪造的请求,篡夺受害者的认证Cookie等身份信息,从而假冒受害者对目标站点执行指定的操作。Firefox、Opera等浏览器使用单进程机制,多个窗口或标签使用同一个进程,共享Cookie等会话数据。IE则混合使用单进程与多进程模式,一个窗口中的多个标签,以及使用“CTRL+N” 或单击网页中的链接打开的新窗口使用同一进程,共享会话数据;只有直接运行IE可执行程序打开窗口时,才会创建新的进程。Chrome虽然使用多进程机制,然而经测试发现,其不同的窗口或标签之间仍会共享会话数据,除非使用隐身访问方式。因而,用户同时打开多个浏览器窗口或标签访问互联网资源时,就为CSRF攻击篡夺用户的会话Cookie创造了条件。另外,如果一个Web站点提供持久化Cookie,则CSRF攻击将更直接、更容易。

延伸阅读

组成

Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。其中:

(1)Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌。

(2)Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效。

(3)Path属性:定义了Web站点上可以访问该Cookie的目录。

(4)Domain属性:指定了可以访问该 Cookie 的 Web 站点或域。Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。当需要实现单点登录方案时,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在 Domain 属性中设置.org、.com 等通用顶级域名、以及在国家及地区顶级域下注册的二级域名,以减小攻击发生的范围。

(5)Secure属性:指定是否使用HTTPS安全协议发送Cookie。使用HTTPS安全协议,可以保护Cookie在浏览器和Web服务器间的传输过程中不被窃取和篡改。该方法也可用于Web站点的身份鉴别,即在HTTPS的连接建立阶段,浏览器会检查Web网站的SSL证书的有效性。但是基于兼容性的原因(比如有些网站使用自签署的证书)在检测到SSL证书无效时,浏览器并不会立即终止用户的连接请求,而是显示安全风险信息,用户仍可以选择继续访问该站点。由于许多用户缺乏安全意识,因而仍可能连接到Pharming攻击所伪造的网站。

(6)HTTPOnly 属性 :用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。但是,HTTPOnly的应用仍存在局限性,一些浏览器可以阻止客户端脚本对Cookie的读操作,但允许写操作;此外大多数浏览器仍允许通过XMLHTTP对象读取HTTP响应中的Set-Cookie头。

文章标题:Cookie是什么,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/51714

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年5月10日
下一篇 2023年5月10日

相关推荐

  • 迭代回顾会议流程包括哪些

    迭代回顾会议流程包括:1、确定需求目标;2、编写文档;3、讨论文档;4、迭代安排。我们在进行产品迭代的时候,经常会遇到各种各样的问题或遇到难题。比如测试和上线中的问题、开发中的问题等等,都需要迭代来解决。 迭代回顾会议流程包括哪些 我们在进行产品迭代的时候,经常会遇到各种各样的问题或遇到难题。比如测…

    2022年11月15日
    78700
  • 飞书项目管理怎么用

    根据项目的不同,飞书项目管理的使用可以分为三种类型:一、对于日常项目;二、对于轻量项目;三、对于专业项目。对于日常项目有:1、群聊沉淀项目重要信息;2、用飞书文档进行项目管理与协作;3、用飞书任务进行任务管理。 一、对于日常项目 1、群聊沉淀项目重要信息 项目中群聊沟通必不可少,多种方式使飞书群聊更…

    2023年2月23日
    2.3K00
  • 软件研发度量标准有哪些

    度量标准有:一、代码行数;三、功能点数;三、缺陷密度;四、代码复杂度;五、代码重复率;六、报告覆盖率;七、代码审查覆盖率;八、代码重构率。代码行数是最基本的研发度量标准之一。通过统计代码的行数,可以清楚地了解软件的规模和复杂度。 一、代码行数 代码行数是最基本的研发度量标准之一。通过统计代码的行数,…

    2023年4月16日
    93200
  • 进度管理中的风险评估如何进行

    风险评估在进度管理中至关重要,目的在于识别和分析可能影响项目完成时间的不确定性因素。其中,1、系统地识别风险是关键步骤,需要团队对项目的每一个环节进行仔细审查,发现可能的风险源。对此一点展开描述,识别过程通常包含多种技巧,比如专家访谈、假设情境分析和头脑风暴等。在识别之后,通过定性和定量分析相结合的…

    2023年12月26日
    40300
  • oa办公系统永久免费

    OA办公系统可为企业提供高效协同的工作环境,但永久免费的可能性不大。1、成本因素所限、2、维护和更新要求持续投资、3、附加服务和高级功能收费、4、免费模式可能伴随广告或数据利用、5、对企业信息安全的担忧可能促使付费选择。 企业若期盼借助OA(Office Automation)办公系统提高效率同时节…

    2024年1月15日
    23300
  • 如何进行项目结项验收管理

    项目结项验收是项目管理中的一个关键步骤,其主要目标在于确保项目输出符合既定的质量要求和客户需求、对项目成果进行正式确认及评估、确保所有工作已完结、项目文档得以正式存档、对项目经验进行总结。项目结项验收管理需要注重制定明确的验收标准、进行细致的工作交接、确保完善的文档归档以及组织经验教训的梳理和知识转…

    2024年4月11日
    6600
  • 如何管理一个咨询项目的人员

    管理一个咨询项目的人员包括几个关键因素:明确角色与职责、构建高效的沟通机制、培养团队合作精神、定期评估与反馈,以及个性化管理与激励。这些因素共同作用,确保了项目团队的高效和谐运作。构建高效的沟通机制对于咨询项目尤为重要,因为它能够确保信息的快速流动、及时解决问题并有效协调各方利益关系,从而推动项目顺…

    2024年4月11日
    5800
  • 如何在项目中有效管理

    一、明确项目目标和期望 项目管理的有效性始于明确的项目目标和期望。明确的愿景、具体的目标、可衡量的成果,这些对项目的成功至关重要。目标应该具体,且与所涉及的各方利益相关,这样可以确保团队理解他们最终要实现的是什么。要使目标具体可行,SMART原则是一个十分有效的工具,它代表了目标的五个关键特征:特定…

    2024年4月10日
    6300
  • 项目经理如何说管理人员懒散

    项目经理如何管理懒散的员工?首先,识别懒散的原因、设置明确目标、提供反馈和激励机制、进行有效沟通,以及实施定期监督。在这些策略中,设置明确的目标尤为关键。这不仅可以帮助员工清晰地了解自己的职责,还能为他们的工作提供方向,从而提高效率和动力。通过设定可衡量、具体、相关、达成时间有限、并具有相关性的SM…

    2024年4月11日
    7700
  • 学习编程需要什么

    学习编程需要什么 学习编程需具备三个核心要素:1、逻辑思维、2、解决问题的能力、3、持续学习的意愿。逻辑思维是编程的基石,它帮助我们理解和设计复杂的算法,能够有效地将复杂问题分解成较小、可管理的单元,以逻辑性和条理性强的方式进行解决。 一、逻辑思维 逻辑思维在编程中扮演着至关重要的角色。编程不仅仅是…

    2024年4月25日
    500

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部