システム開発スクール講座

システム制作やプログラミングの初心者向けシステム開発WEB講座スクール

PHPセーフモード(SAFE MODE)とは


PHPに含まれる関数の中にはディレクトリ間の操作が容易にできるものが多く用意されています。


ところがVPNをはじめ、共有サーバーなどの利用者にとっては、別のユーザーが同じサーバー上の他のユーザーのディレクトリ操作を可能にしてしまうという、セキュリティ上の脆弱性にもなってしまい、ディレクトリ操作やアクセスが可能なPHPの一部の関数の仕様を制限するというPHPの機能モードです。



ですので、サーバー側でセーフモード機能が設定されている場合は、PHPの機能をすべて利用することが困難となり、そのための設定やファイル操作、パーミッションの設定をユーザー側で行う必要があります。


PHPプログラムが作成したファイルやフォルダの所有者はApacheなどのHTTPサーバーになるために、属性変更などをしても、ファイル操作を不可能にしてしまいます。


CMSなどを利用して自動的にファイルやフォルダを生成する場合は、セーフモード機能をoffもしくはCGIとして機能させるか、ユーザーがファイルを作成して所有者をユーザー管理のもとで操作する必要があります。



WEBサーバやOSレベルで実装させるのが難しいため、ISP等などの多くの共有サービスを利用するサーバーにおいてはセーフモード設定がされているようです。


PHP 5.3.0以降ではセーフモード機能は非推奨となり、php.netではセーフモード機能の非使用が強く推奨されています。

PHP6では廃止が予定されているようです。