【问题标题】:Why is Symfony Session data encrypted on my production server?为什么 Symfony Session 数据在我的生产服务器上被加密?
【发布时间】:2011-06-11 03:14:46
【问题描述】:

我想为共享相同顶级域的 Symfony 网站共享一个单一的身份验证方法。 我使用对所有子域有效的 cookie 和 sfPDOSessionStorage 来保存会话数据。

factories.yml 在两个项目中都是这样设置的:

all:
  storage:
    class: sfPDOSessionStorage
    param:
      database: doctrine
      db_table: sessions
      session_name: myauth
      db_id_col: id
      db_data_col: sess_data
      db_time_col: time
      session_cookie_domain: ".mydomain.net"
      session_cookie_lifetime: 86400
      session_cookie_path: /

在我的开发机器和我同事的机器上,这个机制工作正常,但在服务器上却不行(当我切换子域时,我被要求提供凭据)。我看到这两种环境之间的唯一区别是数据存储的格式,数据似乎在 prod 服务器上被加密,但在我的机器上以明文形式出现。这里没有敏感数据,所以我可以发布一个示例:

开发环境sess_data:

symfony/user/sfUser/lastRequest|i:1295349567;symfony/user/sfUser/authenticated|b:0;symfony/user/sfUser/credentials|a:0:{}symfony/user/sfUser/attributes|a:1:{s:30:"symfony/user/sfUser/attributes";a:1:{s:7:"referer";s:0:"";}}symfony/user/sfUser/culture|s:2:"fr";

生产服务器sess_data:

BB7HBTsQg75NNGvb9Z8sexldqbS79YzDgrztQzSFhsUpEk2EeCOtKw8FQbm31vLIRyr3ZP_klwZFXywnkdem27naIWjIVBP_WwpwNRg4IMj1J0fIfxJN_UOw2RbCWh91L5ryCD_7_ynN2UtxfuJwUWnxoGuUvqD8YQxNdczQipmktPVFk1mVfKE1-BsrdHHLIXH_gi44-Bos3f-EshE5skuQpachnY1FkgvvvOuXEj7zxPflgA3xtGoqJxkDijT-uKnQCH4TrimhvkIRGCt0oVuOdsAJzuWW6ijgPCD3X767mSIzm_lQmJoSGxDB7fAgFihB7Ljoq0tsysC62BqTYFB6dTnuZoj3KON8lXlyNJZVyLgTWZ3EYoObtc8jCKYNDonSjEqzTvwg4NJRVoB5ePx61iTqbDd9qFlkryzj9J8.

我不知道使用哪种加密类型将信息存储在数据库中,我也不确定这是我问题的根源,但由于这是我能发现的唯一区别,我看不到任何其他解释。 (PHP 和 MySQL 版本相同,我这边是 Ubuntu 10.10,服务器端是 Debian Squeeze)。

【问题讨论】:

  • 看起来会话数据只是简单的 base64 编码。我对其进行了解码,结果是一个实际加密的字符串。可以使用 AES 或其他 2 路加密方法。我不知道为什么两台服务器会有所不同。你有安装任何安全插件吗?

标签: session authentication symfony1 doctrine


【解决方案1】:

我认为您的生产服务器上安装了一些模块,负责加密会话数据。

例如,suhosin 补丁在 PHP 中添加了这样一个功能:http://www.hardened-php.net/suhosin/configuration.html

它由 php.ini 中的 suhosin.session.encrypt 配置选项激活。

【讨论】:

  • 就是这样!我尝试删除 php5-suhosin 并再次共享身份验证。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
相关资源
最近更新 更多