phpsess / session-handler
以安全为首要的PHP会话处理器
dev-master
2018-10-15 19:51 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpmd/phpmd: ^2.6
- phpsess/mock-storage: dev-master
- phpsess/openssl-encryption: dev-master
- phpstan/phpstan: ^0.10.3
- phpunit/phpunit: ^7
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2024-09-16 08:41:51 UTC
README
PHP Session. The way it should be.
----- 仍在开发中 -----
PHPSess是一个功能齐全的PHP会话处理器。任何人都可以为其编写新的驱动程序,使其能够轻松地将会话数据存储在[ 新的闪亮且快速数据库 ]中,或者使用[ 新的先进加密库 ]来保护数据。
它实现了PHP的SessionHandlerInterface
接口,因此您可以使用会话,就像您一直所做的那样:旧的但好的$_SESSION
超全局变量和session_
函数。当然,如果您想直接使用SessionHandler
实例(例如,在您正在构建的新颖框架中),那也很好。
它的功能
- 以加密会话数据,即使你有访问会话文件、源代码和app-key,也无法解密它;
- 防止会话固定:如果提供一个不存在的会话ID,将生成一个新的ID,而不是接受请求中的任意ID;
- 会话锁定:如果有两个请求同时尝试操作会话,其中一个将必须等待会话解锁;
- 警告不安全的会话ini设置。
快速入门
composer require phpsess/session-handler phpsess/file-storage phpsess/openssl-encryption
初始化驱动程序并将它们传递给会话处理器
use PHPSess\SessionHandler;
use PHPSess\Storage\FileStorage;
use PHPSess\Encryption\OpenSSlEncryption;
$sessEncryption = new OpenSSLEncryption('a-strong-random-SECRET-app-key');
$sessStorage = new FileStorage();
创建会话处理器的一个实例并将其注册到PHP引擎中
$sessionHandler = new SessionHandler($sessEncryption, $sessStorage);
session_set_save_handler($sessionHandler);
注册后,您可以像以前一样使用内置的session_
函数和$_SESSION
超全局变量
session_start();
$_SESSION['pass'] = 'mySecretP@ss123';
echo $_SESSION['pass'];