ezimuel / php-secure-session
使用 AES-256 和 HMAC-SHA256 对 PHP 会话数据进行加密和认证
Requires
- php: ^5.6 || ^7.0
- ext-mbstring: *
- ext-openssl: *
- paragonie/random_compat: ^2.0.2
Requires (Dev)
- phpunit/phpunit: ^5.7.27
This package is auto-updated.
Last update: 2024-09-16 00:49:48 UTC
README
关于
此项目为 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 许可证 下发布