ezimuel/php-secure-session

使用 AES-256 和 HMAC-SHA256 对 PHP 会话数据进行加密和认证

v1.1.0 2018-02-01 13:38 UTC

This package is auto-updated.

Last update: 2024-09-16 00:49:48 UTC


README

Build Status Coverage Status

关于

此项目为 PHP 内部保存处理程序添加了加密功能。它使用 OpenSSL 扩展提供 AES-256 加密和 HMAC-SHA-256 认证。

SecureHandler 类扩展了 PHP 的默认 SessionHandler,并在内部保存处理程序上仅添加了加密层。会话管理逻辑保持不变,这意味着您可以使用 SecureSession 与所有由 PHP 扩展提供的 PHP 会话处理程序(如 'file', 'sqlite', 'memcache' 或 'memcached')一起使用。

安装

您可以使用以下命令使用 composer 安装此库

composer require ezimuel/php-secure-session

之后,在项目中使用 vendor/autoload.php 文件时,PHP-Secure-Session 处理程序将自动执行。

用法

您无需做任何事情即可使用此库,在 composer 自动加载期间,SecureHandler 将自动通过 session_set_save_handler() 注册。

工作原理

会话数据使用一个以 KEY_ 为前缀的 cookie 变量中存储的 随机密钥 进行加密。

此随机密钥使用 PHP 7 的 random_bytes() 函数生成。对于 PHP 5 版本,我们使用了 paragonie/random_compat 项目,该项目是 random_bytes() 的 polyfill。

我们还生成一个存储在相同 cookie 变量中的随机认证密钥。存储在 KEY_ cookie 中的值是加密密钥和认证密钥的连接的 Base64 表示。

演示

您可以使用 test/demo/index.php 示例测试 PHP-Secure-Session。您可以使用以下命令运行演示

php -S 0.0.0.0:8000 -t test/demo

如果您在浏览器中打开 localhost:8000,您将看到演示在运行。

版权所有 2011-2018 年 Enrico Zimuel

MIT 许可证 下发布