这些函数的行为受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