首页 > 解决方案 > Codeigniter ci_session cookie(GDPR 问题)

问题描述

我有一个用 CodeIgniter 编写的网站,默认情况下,第一次访问该网站时会创建 ci_session cookie。客户请求使网站符合 GDPR。我没有在谷歌分析旁边添加任何 cookie 或本地存储。我确实向 php session 变量添加了一些东西,但我认为它不属于 GDPR 范围。

所以,基本上我在网站负载上有以下 cookie:

我已经知道如何处理谷歌分析 cookie,但 ci_session 让我感到困惑。据我了解,在第一页加载时,在客户同意之前绝对不允许使用 cookie。

我的问题是:“在用户同意之前禁用 ci_session cookie 的最佳方法是什么?”

*Codeigniter 版本 2.1.7

标签: phpcodeignitercookiessession-cookiesdata-protection

解决方案


尽管看起来很奇怪,但 GDPR 对 cookie 只字未提,只是在与持久标识符相关的独奏会(背景信息,而不是法律)中提及。适用的是欧盟电子隐私指令,该指令最终将被电子隐私法规(“ePR”)所取代。英国ICO 对ePD 下 cookie 的指导说:

如果出现以下情况,则可以豁免:

cookie 仅用于通过电子通信网络传输通信;或者

cookie 是提供订户或用户要求的“信息社会服务”(例如互联网服务)所必需的。请注意,满足他们的请求必须是必不可少的——有用或方便但不是必需的或仅对您自己的目的至关重要的 cookie 仍需要征得同意。

这意味着您不太可能需要同意:

cookie 用于记住用户在将商品添加到在线购物篮或在互联网购物网站上结账时希望购买的商品;

会话 cookie 提供的安全性对于遵守用户请求的在线服务(例如在线银行服务)的数据保护安全要求至关重要;或者

负载平衡 cookie,通过在多台计算机上分配工作负载,确保您的页面内容快速有效地加载。

请注意,Google Analytics 不符合此定义的严格必要条件;但这不仅仅是关于 cookie - 旨在防止未经同意进行跟踪,其中 cookie 只是实现它的一种方式,并且从谷歌加载 javascript 确实是跟踪,即使他们没有设置 cookie(GA 可以被设置为做)。

虽然在初次访问时根本不应该设置 cookie,但在获得任何同意的机会之前,用于身份验证的第一方会话 cookie绝对符合技术目的“绝对必要”的条件,因此首先不需要同意。会话 cookie(根据定义)在窗口关闭时会被删除,但您甚至可以通过在注销时设置Clear-Site-Data 标头来抢占。

关于 CodeIgniter 如何处理这个问题,我会说值得报告错误避免调用任何会导致在登录之前启动会话的东西。


推荐阅读