初めて大規模な PHP アプリケーション (セットアップ付き) を作成していますが、権限に関してどのようなセキュリティ対策を講じるべきか疑問に思っています。
setup.php は、setup.php からの POST データに基づいて config.php を生成するために fopen/fwrite を使用します。 これは機能しますが、 の権限を設定しないと config.php に書き込むことができないようです777
。
Config.php には基本的に、PHP 変数 (include() される) にデータベース資格情報が含まれますが、そのままにしておくのが良いでしょうか777
?
これで大丈夫なのか、それともユーザーに権限を 655 などに戻すように指示する必要があるのか (よくわかりません) 疑問に思っています。
答え1
ファイルの権限は、手元の作業に必要な権限に設定する必要があります。インストールの場合は 777、アプリケーションの実行の場合は 644 などです。
アプリケーションが実行されるたびに、(重要なファイルとパスに対する) 権限が適切であることを確認し、適切でない場合はエラー メッセージを発行してアプリケーションの実行を停止する必要があります。
答え2
多くの PHP アプリケーションでは、製品のインストール中に config.php を 777 に設定する必要があります。これはまったく問題ないと思いますが、セットアップが完了したらファイルを 644 に戻す必要があることをユーザーに警告する必要があります。
もう 1 つの解決策は、ユーザーにデータベース設定を config.php にハードコードさせることです。ただし、これは一部の新規ユーザーにとっては複雑になります。