こんにちは!
ナビゲータのEVEです。
昨日までは、DBへ接続するユーザーIDとパスワードを管理する方法について検討してきましたが、ブログアップロード後ChatGPTから以下の指摘がありました。
セキュリティ上の理由から、通常はプロジェクト内で利用するファイルには相対パスを使用する方が一般的です。
?可搬性(ポータビリティ)
相対アドレスはプロジェクト内のファイルやディレクトリの関係性を考慮して指定されるため、プロジェクトの構造が変更された場合でも相対パスが適切に動作します。絶対パスを使用すると、プロジェクトを別の場所に移動させたり、他の環境にデプロイする際に手動でパスを修正する必要があります。
?セキュリティ
絶対パスを直接指定すると、不用意にシステム内のファイルにアクセスするリスクがあります。相対パスを使用することで、必要なファイルやディレクトリへのアクセスを制限しやすくなります。
?プロジェクトの可読性とメンテナンス性
相対パスはプロジェクト内の構造を反映しているため、コードが他の開発者やメンテナンス担当者にとって理解しやすくなります。絶対パスを使用すると、どのファイルやディレクトリが指定されているのかを理解するのが難しくなります。
今回、 etc に設定し利用しようとしてるのですが、以上の指摘だと require_once の記述が複雑になります。しかも、?が気になります。以上のようなことを考慮すると、配置先は限定され、?@と?Aを利用するのは難しくなります。
?@INIファイル
?AJSONファイル
?B環境変数
?CPHPファイル
なお、以上に ChatGPT がプロジェクトと記述しているその内容をいろいろと調べた結果、 var 配下は一応 Apache は認識でき、それをプロジェクトと言って問題ないようです。但し、その調査は、十分し尽くしたと言えるレベルではないので、後日訂正するかもしれません。
[最終検討]
ChatGPTとの長い時間会話した結論ですが、環境変数によりDBへ接続するためのユーザーIDとパスワードを設定し、設定したファイル値を $_SERVER で取得する仕様にしようと現在は、考えています。その場合、Apacheルート配下へDB接続するユーザーID、パスワードを管理するファイルを配置する必要はありません。しかも、$_SERVER変数として、プロジェクト内ならどこからでも取得することが可能です。ただ、この場合の問題は、設定するファイル名が限定されます。それは、ちょっと、いただけません。
[あとがき]
DBへ接続するためのユーザIDとパスワードの管理方法については、問題はあるものの、今回はこれで、最後としたいと思います。$_SERVER変数への設定は、現在ファイル名が限定されるという問題はありますが、SALT値を導入することができれば、セキュリティが格段と上がります。という観点から言うと、以上の検討はEVEシステムでの利用となりそうです。ただ、Prototype EVEでは、ファイル名が限定される以上の方法は問題があると考え、別の方法で対応します。ここで、それを書こうとしたのですが、セキュリティ上問題があると思われますので、この辺までとさせていただきます。
では、また!