cookie本身是text 文本,记载了两种信息,一种是特定用户ID,一种是用户携带的信息,例如密码、支付信息等。
cookie 分为session cookie 和 persistent cookie,通常session cookie比较常用一些,所谓session cookie,关掉browser之后就结束了,常用于EC site。persistent cookie 通常带有expiration date.
persistent cookie 可以跟踪用户行为,例如google 地图等应用等。(google最近被吐槽也有点多了)
如果用户使用browser的“记住”功能,则persistent cookie 被调用,储存用户的浏览记录。
cookie 还可分为 first-party cookie, 和 third-party cookie.
first-party是指你登录或使用的网站所发行的cookie,而third-party cookie 常为一些广告网站,有侵犯隐私以及安全隐患。
网络攻击使用到cookie的方法有如下几种:
**xss(Cross-site scripting): **
反射型攻击(reflected XSS): 例如利用搜索关键字或者向服务器提交的数据中包含的一些信息,转义并植入js或html 发回给客户端
stored XSS:
将恶意脚本存储在服务器,每次访问触发
Dom-based or local XSS: 常由免费wifi 引起
session fixation:
将恶意cookie传给受害者,在受害者访问正常网站的时候用恶意cookie替代正常cookie
Cross site request forgery attack (XSRF):
伪装来自受信任用户的请求来利用受信任的网站
Cookie tossing attack:
伪装成正常网站的子网站名,当用户访问此网站的时候,事先埋下的cookie被和正常cookie一起提交
而我竟然发现github网站迁移和这类攻击有关系:
https://www.oschina.net/translate/yummy-cookies-across-domains?cmp
当前比较流行的browser对cookie的攻击都有一些防范措施,例如使用https (chrome会出现未使用的提醒),cookie加上httponly 的flag,以防止js的植入,以及加上samesite flag 以防止第四种攻击。
另外,EU有网站攻击法律,有相关cookie设定的一些规定,进而查了日本相关的法律,似乎日本是参考EU的法律制定的。
参考:
https://www.whoishostingthis.com/resources/cookies-guide/