這些函式的行為會受到 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