php.ini の設定により動作が変化します。
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
phar.readonly | "1" | INI_ALL |
|
phar.require_hash | "1" | INI_ALL |
|
phar.cache_list | "" | INI_SYSTEM |
以下に設定ディレクティブに関する 簡単な説明を示します。
phar.readonly
bool
このオプションを使用すると、phar
ストリームや Phar
オブジェクトによる Phar アーカイブの作成や変更ができなくなります。
この設定は、実運用環境では常に有効にしておくべきです。
phar 拡張モジュールのこの機能は、
サーバー上に他のセキュリティ上の脆弱性があった場合に
php ベースのウィルスを直接作成されてしまうことにつながります。
注意:
この設定は、php.ini でしか解除できません。
phar.readonly
を php.ini で無効にした場合は、 ユーザーがスクリプト内でphar.readonly
の有効/無効を切りかえることができます。phar.readonly
を php.ini で有効にした場合は、 スクリプト内でこれを "再度有効にする" ことはできますが、無効にすることはできません。
phar.require_hash
bool
このオプションを使用すると、署名つき (現在サポートしているのは MD5、SHA1、SHA256、SHA512、および OpenSSL) の Phar アーカイブのみをオープンするようになります。 署名を含まない Phar アーカイブの処理はできません。
注意:
この設定は、セキュリティ上の理由により php.ini でしか解除できません。
phar.require_hash
を php.ini で無効にした場合は、 ユーザーがスクリプト内でphar.require_hash
の有効/無効を切りかえることができます。phar.require_hash
を php.ini で有効にした場合は、 スクリプト内でこれを "再度有効にする" ことはできますが、無効にすることはできません。この設定は、 PharData クラスで通常の tar ファイルを読み込む際には影響を及ぼしません。
phar.require_hash
は、それ自体はセキュリティ上の機能を提供しません。
壊れた Pharアーカイブを誤って実行することへの備えでしかありません。
Phar を改ざんできる人は、シグネチャを後で簡単に修正できてしまうからです。
phar.cache_list
string
phar アーカイブをウェブサーバーの起動時に事前にパースさせるようにします。 これによりパフォーマンスが向上し、 ディスク上に配置した伝統的なファイルに近い速度で実行することができます。
例1 phar.cache_list の使用例
php.ini (windows): phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar php.ini (unix): phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar