当前位置:首页 > PHP > 正文内容

验证php session id 是否有效,验证默认的PHP会话ID值

高老师5年前 (2020-10-30)PHP1200

我最近需要验证PHP会话ID创建的值。经过一些研究,我意识到有两个与此值相关的有趣的php.ini配置设置:

session.sid_length是ID中的字符数
session.sid_bits_per_character控制使用的字符集。从手册上可以知道可能的值为
'4'(0-9,af),'5'(0-9,av)和'6'(0-9,az,AZ,“-”,“,”)

因此,要验证会话ID,我们需要创建一个正则表达式,以查找预期长度的正确字符集。

function isValidSessionId(string $sessionId): bool
{
    $sidLength = ini_get('session.sid_length');
    switch (ini_get('session.sid_bits_per_character'))
    {
        case 6:
            $characterClass = '0-9a-zA-z,-';
            break;
        case 5:
            $characterClass = '0-9a-v';
            break;
        case 4:
            $characterClass = '0-9a-f';
            break;
        default:

            throw new \RuntimeException('Unknown value in session.sid_bits_per_character.');
    }
    $pattern = '/^[' . $characterClass . ']{' . $sidLength . '}$/';
    return preg_match($pattern, $sessionId) === 1;
}

本篇文章学习自akrabat.com博客,不建议使用本方法验证,因为ini的配置会动态变更,另外定义的各种字母后期会发生变化,对应的场景基本不存在

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/173.html

分享给朋友:

“验证php session id 是否有效,验证默认的PHP会话ID值” 的相关文章

PHP使用fsockopen抓取网页,自定义请求头

PHP使用fsockopen抓取网页,自定义请求头

通过该函数可以获取指定端口的页面源码,还能设置超时时间、自定义数据包,fsockopen 也很强大,但是比较偏底层。可以自定义设置header头信息,强大至极。$socket=fsockopen('www.jd88.net','80',$errno,$errstr,3...

PHP计算两个字符串的相似度

PHP计算两个字符串的相似度

<?php echo similar_text("Hello World","Hello Shanghai"); ?> 2.计算两个字符串的相似度,并返回百分比 <?php similar_text("...

PHP高并发下数据库值更新的问题

PHP高并发下数据库值更新的问题

(1).创建数据库test ,创建表shop(字段id,total),商品id是1,商品总数10    (2).PHP模拟购买,商品数量大于0才能购买<?php //连接数据库 $con=mysqli_connect("192.168.2.18...

redis订阅和发布,redis消息订阅与发布, phpredis订阅和发布

redis订阅和发布,redis消息订阅与发布, phpredis订阅和发布

Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...

cookie跨域,cookie p3p跨域

cookie跨域,cookie p3p跨域

最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...

php执行慢原因查找

php执行慢原因查找

今天帮朋友查询wordpress执行超级慢的原因,特此记录开启fpm的慢日志,记录执行超过30秒的脚本request_slowlog_timeout = 30 slowlog = var/log/slow.log查看日志[23-May-2019 17...