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 封存檔的映射,從而提高效能,使從 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