phpsess/session-handler

以安全为首要的PHP会话处理器

dev-master 2018-10-15 19:51 UTC

This package is auto-updated.

Last update: 2024-09-16 08:41:51 UTC


README

PHP Session. The way it should be.

Build Status License Maintainability Test Coverage

----- 仍在开发中 -----

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'];