【问题标题】:Codeigniter ci_session cookie (GDPR problem)Codeigniter ci_session cookie(GDPR 问题)
【发布时间】:2019-07-28 01:32:11
【问题描述】:

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

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

  • ci_session
  • 谷歌分析 cookie

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

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

*Codeigniter 版本 2.1.7

【问题讨论】:

  • 你会自动加载会话库吗?
  • 它不在自动加载配置文件中,但我确实将它加载到自动加载的身份验证库的构造函数中。我可以把支票放在那里,如果是真的 - 加载图书馆。
  • 是的 - 我唯一会做的 - 是检查是否同意(一旦用户这样做 - 你应该设置一个 cookie 并在你的身份验证库中访问它 - 如果它已设置 -只需加载会话库)
  • 但是,通过不加载会话库,我也不会获得服务器端会话处理,这对站点非常重要。也许可以自己调整会话库?
  • 我不会摆弄会话库。相反,调整构造函数以在用户同意之前不加载登录页面上的会话库。因为它是一个登陆页面,所以在第一次访问时加载会话库并没有太大的好处。

标签: php codeigniter cookies session-cookies data-protection


【解决方案1】:

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

如果满足以下条件,则可以豁免:

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

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

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

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

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

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

请注意,根据此定义,Google Analytics(分析)不符合严格必要条件;这不仅仅是关于 cookie - 应该防止的是未经同意跟踪,其中 cookie 只是实现它的一种方式,并且从谷歌加载 javascript 确实是跟踪,即使他们这样做不设置 cookie(可以设置 GA 来做)。

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

关于 CodeIgniter 如何处理此问题,我认为值得报告错误避免调用任何会导致会话在登录之前启动的内容。

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 2011-08-17
    • 2011-10-10
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多