1. 技术上并不是需要用户同意。实际上你爱怎么用,就怎么用。但是欧盟有法律限制,具体不是很清楚,貌似是第三方 cookies 的使用需要用户同意。因为这些第三方 cookie 基本是 google ads 之流,轻松可以追踪到用户的浏览行为。你自己网站需要用的必要 cookies 不受此限制。虽然只是欧盟有这些限制,但是不知道为什么很多网站都把这种要“用户同意使用 cookie” 的弹框对所有地区的访客开启。我曾经试过访问一些国际大企业的网站,比如 Google 搜索,当你把代理设置在欧盟国家的时候,会弹出一个条款要你同意,但是代理设置成欧盟外的地区,这个弹框又不会出现。
2. 回到技术层面,你这种方案有一定风险。cookies 只是存储介质,如果只是存储一些 session 统计等无关紧要的信息,那你这样做也所谓。但是当 cookie 存储的信息是身份验证信息的时候,你的这种处理方式会带来一定风险。js 能把 cookie 丢到 localStorage ,意味着你的这种 cookie 可以被 JS 读取,意味着如果网站有 XSS 漏洞,用户的 身份验证信息会被攻击者偷走。一般而言,用来存储身份验证信息的 cookie 不需要用户同意。一般要设置成 Http-Only ( JS 无法读取,也就不会被 XSS 攻击者窃取)、Secure (只能在 https 这类安全通讯协议上传输)、SameSite 至少设置为 Lax (老版本的浏览器并没把 Lax 设为 SameSite 的默认值)。 |