就像 SameSite-cookies 我现已重视 Cookie 前缀很长时刻了。经过测验我发现在最新版的 Chrome-dev 浏览器中 Cookie 前缀现已得到了支撑。那么现在是时分写一短篇博客来介绍什么是 Cookie 前缀以及 Cookie 前缀是怎么维护用户的。
修正 Cookie,而非其特点!
Cookie 前缀是 HTTP 协议一个新的机制,其扩展了 Cookie 的特征,经过简略要求具有特定前缀的 Cookie 只能在满意特定规范的景象下才干运用。
咱们改变了 Cookie 的实践称号而不是添加其他特点,这样今后服务器在接收到称号过错的 Cookie 时会直接回绝承受。
这两个前缀分别为 __Secure- 和 __Host- ,它们会被用作 Cookie 称号的前缀而非数值。举个比如,假如你的网站有一个名为 sid 的 Cookie,那么为了发挥 Cookie 前缀的优势,你应当将称号改为 __Secure-sid。
__Secure 前缀
假如 Cookie 称号带有 __Secure- 前缀,那么它必定具有 Secure 特点并且被设置为来源于一个安全的源。
__Host- 前缀
假如 Cookie 称号带有 __Host- 前缀,那么它也必定会具有 Secure 特点,而不应当具有 Domain 特点,由于 Cookie 只能作用于同源的网站,并且有必要设置 Path=/。
译者注(来自 Chrome 的解说):
__Secure-:告知浏览器需求设置 Secure 特点。
__Host-:告知浏览器一起需求设置 Path=/ 和 Secure 特点,一起不应当设置 Domain 特点。
就这么多,这些改动易于完成和运用。但这样真的能够让 Cookie 变的愈加安全吗?
愈加安全的 Cookie 前缀
Cookie 前缀旨在针对现有 Cookie 的一些问题进行改善,其方针是约束来自安全域的 Cookie 被作用在不安全的域上,反之亦然。
相同的,它也能够抵挡 Cookie 注入,由于只要 __Host- 的源能够设置 Cookie。
假如你的网站运用了 HTTPS 并依靠 Cookie 来完成认证,那么能够考虑在你的 Cookie 里添加 __Host- 特点以使网站比曾经愈加安全。
弥补:
作者在 Twitter 上收到一个问题,他觉得本文或许没有论述清楚,运用 Cookie 前缀的首要意图在于运用 Cookie 称号替代 Cookie 特点。
你能够经过拜访这个 POC 来体会下:http://sweha.xxx/k.php
c@c# curl -sI http://sweha.xxx/k.php | grep ^Set
Set-cookie: __Secure-lol=foo;Domain=sweha.xxx
在 Chrome-dev 浏览器中你会发现 Cookie 没有被设置,由于来自不安全的源。而在 Firefox 浏览器中却会被设置 Cookie:
译者弥补
JavaScript 示例:
//支撑 __Secure 前缀的浏览器会回绝以下衔接,由于短少 Secure 特点
document.cookie = '__Secure-invalid-without-secure=1';
//一切浏览器包含支撑 __Secure 前缀的浏览器都会承受以下衔接,由于设置了 Secure 特点
document.cookie = '__Secure-valid-with-secure=1; Secure';
//支撑 __Host 前缀的浏览器会回绝以下衔接,由于短少 Secure 和 Path=/ 特点
document.cookie = '__Host-invalid-without-secure-or-path=1';
//支撑 __Host 前缀的浏览器会回绝以下衔接,由于短少 Path=/ 特点,即便设置了 Secure 特点
document.cookie = '__Host-invalid-without-path=1; Secure';
//一切浏览器包含支撑 __Host 前缀的浏览器都会承受以下衔接,由于一起包含了 Secure 和 Path=/ 特点
document.cookie = '__Host-valid-with-secure-and-path=1; Secure; Path=/';
在曩昔的两年里,运用被黑的电商网站对客户的信用卡信息进行垂钓,这种方法现已十分盛行了。 前史事例 此前咱们曾陈述过多起事例,黑客在付款页面和付出模块加上了歹意代码,以此来盗取客户的付出信息。客户自身...
BurpSuite东西箱 /// <param name="connection"></param>1.3 中心代码的躲藏cat ./-inurl:help.as...
「黑客qq接单群免费_找黑客同步老公微信聊天记录-怎么找国外黑客」假定GET/POST/COOKIE一起提交的参数id,服务端接纳参数id的次序是什么样呢?function GetEndChat($c...
IHello hello = new IHelloImpl();<form name="frmLogin" method="post" action="./Servlet/UsersContro...
安全问题是编程言语中需求考虑的重要部分,几乎在任何一种实践的言语中都会供给一些函数,模块,或其它保证安全的功用。在现代互联网中,咱们常常要从世界各地的用户中取得输入数据。可是,咱们都知道“永久不能信...
5. 修正 Peach 的版别 oneof command {在2018年11月,咱们发现了CozyDuke安排的一些活动痕迹,首要针对欧洲的外交安排和政府安排。 该安排所运用的TTP,也曾在其他安排...