arthurkushman/coossions

该包的最新版本(1.1.1)没有可用的许可证信息。

Coossions php 插件,用于将会话存储在加密的 cookie 中

1.1.1 2017-05-01 18:27 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:18 UTC


README

Scrutinizer Code Quality Build Status Code Coverage MIT Licence

Coossions(代表 cookie-sessions)是一个 php 插件,用于将会话存储在加密的 cookie 中

通过 composer 安装

    composer require arthurkushman/coossions

用法

    $coossions = new CoossionsHandler('your_digest_secrete'); // any secret word
    $coossions->startSession();    

然后,像往常一样,在任何代码空间中 - 设置会话全局变量

    $_SESSION['foo'] = 123;
    $_SESSION['bar'] = 'baz';    

获取会话全局变量

    echo $_SESSION['foo'] . ' ' . $_SESSION['bar'];    

详细信息

会话将在客户端的 cookie 中写入,使用 openssl 加密代码(默认使用 aes-256-ctr 加密算法),并通过 your_digest_secrete(默认使用 sha256)进行摘要。此外,整个消息将与 hash_hmac 合并,基于由动态 SID 和消息组成的盐,然后通过 hash_equals 进行检查,以进一步识别存储在 cookie 中的非欺诈数据。

为了创建可靠的/安全的加密签名,最好是将 your_digest_secrete 设置为大小写字母和数字的组合,并且足够长。

通过 DI 设置自定义哈希和加密算法

尽管已经设置了目前已知最佳的和加密算法 - 您可以设置您首选的算法

        $coossions = new CoossionsHandler('your_digest_secrete');
        
        $encryptor = new Encryptor('your_digest_secrete');
        $encryptor->setDigestAlgo('sha512'); // defaults to sha256
        $encryptor->setCipherAlgo('aes-128-ctr'); // defaults to aes-256-ctr
        $coossions->setEncryption($encryptor);
        
        $coossions->startSession();        

性能

测试了写入/读取 2 个 $_SESSION 变量(3 个符号长度的 int/string)的性能

  • 写入平均时间 6-8 微秒
  • 读取平均时间 5-7 微秒