How to bypass typo3 phar stream wrapper and use Php's stream handlers in Joomla 4.2 winth php 8.1

问题描述 投票:0回答:0

我将 Joomla 从 3.10.11 升级到 4.2。从那时起我收到错误:

Uncaught TYPO3\PharStreamWrapper\Exception Unexpected file extension in "Phar://httpful.phar/....../Response.php"

我已经尝试过各种论坛来找到解决我面临的类似问题的方法,但我没有成功。由于phar反序列化漏洞在PHP8+中已经修复,我想完全绕过Typo3的Phar流包装器,而是使用PHP8.1的内置流处理程序。

如何从 Joomla4.2 中完全删除或绕过 typo3-phar-stream-wrapper?在 PharExtensionInterceptor.php 中,我修改了函数

baseFileContainsPharExtension
,即使文件扩展名是 PHP 也返回 true。

 private function baseFileContainsPharExtension(string $path): bool
    {
        $invocation = Manager::instance()->resolve($path);
        if ($invocation === null) {
            return false;
        }
        $fileExtension = pathinfo($invocation->getBaseName(), PATHINFO_EXTENSION);
        return strtolower($fileExtension) === 'phar';
    }
}

我修改为:

 private function baseFileContainsPharExtension(string $path): bool
    {
        $invocation = Manager::instance()->resolve($path);
        if ($invocation === null) {
            return false;
        }
        $fileExtension = pathinfo($invocation->getBaseName(), PATHINFO_EXTENSION);
        return (strtolower($fileExtension) === 'phar'||strtolower($fileExtension) === 'php');
    }
}

这也没有帮助.... Phar 流处理程序已经加载,我签入了

phpinfo()

php joomla phar
© www.soinside.com 2019 - 2024. All rights reserved.