2024 PHP 日本大会

运行时配置

这些函数的行为受php.ini中的设置影响。

文件系统和流配置选项
名称 默认值 可更改 变更日志
phar.readonly "1" INI_ALL  
phar.require_hash "1" INI_ALL  
phar.cache_list "" INI_SYSTEM  

以下是配置指令的简短说明。

phar.readonly 布尔值

此选项禁用使用phar流或Phar对象的写入支持来创建或修改 Phar 归档文件。此设置应始终在生产机器上启用,因为 phar 扩展的便捷写入支持可能在与其他常见安全漏洞结合使用时,允许直接创建基于 php 的病毒。

注意:

出于安全原因,此设置只能在 php.ini 中取消设置。如果在 php.ini 中禁用了phar.readonly,则用户可以在脚本中启用phar.readonly或稍后禁用它。如果在 php.ini 中启用了phar.readonly,则脚本可以无害地“重新启用”INI 变量,但不能禁用它。

phar.require_hash 布尔值

此选项将强制所有打开的 Phar 归档文件包含某种签名(当前支持 MD5、SHA1、SHA256、SHA512 和 OpenSSL),并将拒绝处理任何不包含签名的 Phar 归档文件。

注意:

此设置只能在 php.ini 中取消设置。如果在 php.ini 中禁用了phar.require_hash,则用户可以在脚本中启用phar.require_hash或稍后禁用它。如果在 php.ini 中启用了phar.require_hash,则脚本可以无害地“重新启用”INI 变量,但不能禁用它。

此设置不影响使用PharData类读取纯 tar 文件。

警告

phar.require_hash本身并不提供任何安全保障,它仅仅是防止运行意外损坏的 Phar 归档文件的一种措施,因为任何能够篡改 Phar 的人都可以轻松地随后修复签名。

phar.cache_list 字符串

允许映射 Phar 归档文件在 Web 服务器启动时进行预解析,从而提高性能,使从 Phar 归档文件运行文件的速度非常接近从传统的基于磁盘的安装运行这些文件的速度。

示例 #1 phar.cache_list 用法示例

in php.ini (windows):
phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar
in php.ini (unix):
phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top