snawoot/php-storageless-sessions

使用加密和HMAC签名的cookie进行无存储会话

1.4.2 2017-04-03 17:23 UTC

This package is auto-updated.

Last update: 2024-09-10 06:22:58 UTC


README

会话处理器,将会话数据存储在HMAC签名和加密的cookie中。

❤️ ❤️ ❤️

您可以通过向以下钱包捐款来向作者表示感谢

  • ETH: 0xB71250010e8beC90C5f9ddF408251eBA9dD7320e
  • BTC
    • 旧版: 1N89PRvG1CSsUk9sxKwBwudN6TjTPQ1N8a
    • Segwit: bc1qc0hcyxc000qf0ketv4r44ld7dlgmmu73rtlntw

需求

  • PHP 5.4.0 或更高版本
  • OpenSSL 扩展(默认内置)
  • 哈希扩展(默认内置)
  • 启用输出缓冲(output_buffering=1output_buffering=On 在 php.ini 中)

用法

纯PHP

<?php

$secret = "reallylongsecretplease";
$handler = new VladislavYarmak\StoragelessSession\CryptoCookieSessionHandler($secret);

session_set_save_handler($handler, true);
session_start();

$_SESSION["key"] = "value";

Symfony

framework:
    session:
        handler_id:  session.handler.cookie

services:
    session.handler.cookie:
        class:     VladislavYarmak\StoragelessSession\CryptoCookieSessionHandler
        public:    true
        arguments:    ['reallylongsecretplease']

处理器构造函数参数

CryptoCookieSessionHandler($secret, $expire = 2592000, $digest_algo = "sha256", $cipher_algo = "aes-256-cbc", $cipher_keylen = 32)
  • $secret - 用于HMAC签名和加密的密钥短语
  • $expire - HMAC签名的过期时间
  • $digest_algo - 用于密钥派生和cookie签名的哈希算法。有关所有可用的消息摘要算法,请参阅 hash_algos()
  • $cipher_algo - 用于会话内容加密的加密算法。有关所有可用的加密算法,请参阅 openssl_get_cipher_methods()
  • $cipher_keylen - 指定加密算法的正确密钥长度,用于加密密钥派生