代码之家  ›  专栏  ›  技术社区  ›  Zacky112

在PHP中安全地保存会话数据

  •  8
  • Zacky112  · 技术社区  · 15 年前

    我试图了解会话在PHP中是如何工作的,发现会话数据默认存储在文件系统中。在共享宿主环境中,会话数据可以由任何用户编写的PHP脚本读取。这怎么能防止呢?

    5 回复  |  直到 15 年前
        1
  •  6
  •   Mike Sherov    15 年前

    您可以重写脚本的会话保存处理程序,以使用文件系统以外的内容,例如数据库或memcache。下面是一个详细的实现: http://phpsec.org/projects/guide/5.html

        2
  •  1
  •   Marco Ceppi    15 年前

    取决于您对php.ini文件的访问级别-如果您在运行suPHP的共享宿主环境中,并且允许您拥有自己的php.ini文件(例如),那么您只需将session.save_路径设置为类似~/tmp的路径,而不是通常共享的/tmp。

    不过,首先,我认为您实际上不能从其他应用程序读取php会话数据。我相信这对观看它的人来说是相当独特的。

    最后,php会话数据不仅仅是文件系统保存的。也可以将其设置为保存在用户机器上的cookie中,或者将php会话数据设置为存储在数据库中。

        3
  •  1
  •   Otar    15 年前

    编写自己的会话包装器。

    例如编码点火器 session library doe不依赖于PHP的本地版本,它更安全:

    注意:Session类不使用本地PHP会话。它生成自己的会话数据,为开发人员提供更大的灵活性。

        4
  •  1
  •   Hammerite    15 年前

    你可以用 session_save_path() 将会话数据目录更改为不共享的目录。

        5
  •  1
  •   osm    15 年前

    使用session_save_path()并更改您的会话文件夹,如“/htdocs/storage/sessions”。现在会话只保存到给定路径。

    推荐文章