mferly / session-parser
使用此工具在php.ini中定义的PHP会话文件夹中遍历活动会话文件,查找已认证的会话。
1.0
2019-11-25 19:22 UTC
Requires
- php: ^7.3
Requires (Dev)
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-09-29 05:42:33 UTC
README
使用此工具在php.ini中定义的PHP会话文件夹中遍历活动会话文件
提示:您的会话目录可能位于/var/lib/php/sessions/
入门指南
警告:不要将这些文件放在任何类型的public
文件夹中。
由于权限问题,如果您尝试从浏览器中执行此操作,则可能会遇到问题,请仅使用CLI。
您需要查看SessionParser.php
中的private static $needle = 'auth|b:1';
并做出必要的更改以反映您的$_SESSION
密钥。文档注释中提供了更多信息。
基本用法
您可以将会话目录传递给(new \SessionParser\SessionParser)::init()
作为参数,或者直接使用在private static $sessionFolderPath = '/var/lib/php/sessions/';
中声明的默认值。
您可能需要使用sudo
运行以下命令才能使其生效。或者直接以root
身份运行。根据您的环境选择适合的方式。
$ sudo php -f index.php
应返回活动会话的数量 ¯\_(ツ)_/¯
这里正在检查当前时间与会话文件修改时间之间的时间差,如果它在static::$sessionGcMaxlifetime
设置的范围内,则迭代static::$counter
。
if (time() - $file->getCTime() <= static::$sessionGcMaxlifetime) { static::$counter++; }
先决条件
- PHP v7.x (在v7.3.11上测试过)
反思
虽然这个程序只是简单地echo
结果,但没有理由不能修改它将结果写入文件、数据库、发送电子邮件给收件人等。
贡献
- 必须遵循PSR。
- 所有类必须实现一个接口。不实现接口的类的pull请求将被拒绝。