●データファイル保護
PHPで本格的にプログラミングをする場合、
(他の言語でも同じですが)
共通部分を一つのファイルにまとめておいて、
PHPファイルからそのファイルをインクルードする、
というのが一般的だと思います。
ただ、何もせずに、データファイルを作成すると、データファイル漏洩の危機が待っています。
きっちり、対応しておきましょう。
例えば、適当なディレクトリに何か書いたテキストファイルを置いてみて、
そのファイルのアドレスにWebブラウザからアクセスしてみてください。
そういうことです。
--
(他の言語でも同じですが)
共通部分を一つのファイルにまとめておいて、
PHPファイルからそのファイルをインクルードする、
というのが一般的だと思います。
ただ、何もせずに、データファイルを作成すると、データファイル漏洩の危機が待っています。
きっちり、対応しておきましょう。
例えば、適当なディレクトリに何か書いたテキストファイルを置いてみて、
そのファイルのアドレスにWebブラウザからアクセスしてみてください。
そういうことです。
--
まず、.htaccessが使えないレンタルサーバーでは、漏洩しては困るファイルの属性をオーナー限定にしておきましょう。
これだけでも、ある程度の対策にはなります。
.htaccessが使用できる場合は、きめ細かい制御が出来ます。
特定ファイル(拡張子)へのアクセスを禁止する場合、
例えば、.inc,.datへのアクセスを禁止する場合は、
を.htaccessに追加しておくことで、.inc,.datへのアクセスを禁止できます。
このように記述しても、PHPやCGIからはデータファイルへのアクセスは可能なので、ご安心を。
フリー素材のPHPやCGIを使う場合は、データファイルが意外と無防備になるので、データファイルを調べ、拡張子を追加しておいた方がベターです。
特にアクセスログは重要なので、お忘れなく。
もうひとつ、インクルードパスの設定
例えば、/home/username/public_html/fuga/以下にPHPで使用するデータファイルを配置する場合、
を.htaccessに追加しておくことで、
PHPファイルでは、
と記述すれば、そのデータファイルをPHPプログラムで利用できます。
また、インクルードパスを設定しておくことで、配置場所の特定も簡単には出来ません。
こうしておけば、仮に、レンタルサーバーの不具合などで、PHPのソースプログラムが流出しても、データファイル名の流出までで済みます。
もっとも、.htaccessの制御が付かないような状態にまでなってしまったら、どうしようもないんですけどね。
その場合は、Webサーバー自体へのアクセスが出来ないことに期待するしかないのかな。
最後に一つ、
データファイル名やインクルードディレクトリは、よく使う名称は避けた方が無難です。
例えば、名前の前後に自分だけが分かる識別子を付けるなどして、出来る限り、ユニークな名称を付けるようにした方が、解析されにくくなります。
あと、PEARなど共通ライブラリなどは、そのままの名称でいいんですが、決してそこと同じディレクトリに、個人的なデータファイルを置いたりしないことが重要です。
推測しやすくなっちゃいますからね。
出来る限りの防衛はしておきましょう。
それと、IPA ISEC セキュア・プログラミング講座
は、必ず押さえておきましょう。
これだけでも、ある程度の対策にはなります。
.htaccessが使用できる場合は、きめ細かい制御が出来ます。
特定ファイル(拡張子)へのアクセスを禁止する場合、
例えば、.inc,.datへのアクセスを禁止する場合は、
<Files ~ "\.(dat|inc)$">
deny from all
</Files>
を.htaccessに追加しておくことで、.inc,.datへのアクセスを禁止できます。
このように記述しても、PHPやCGIからはデータファイルへのアクセスは可能なので、ご安心を。
フリー素材のPHPやCGIを使う場合は、データファイルが意外と無防備になるので、データファイルを調べ、拡張子を追加しておいた方がベターです。
特にアクセスログは重要なので、お忘れなく。
もうひとつ、インクルードパスの設定
例えば、/home/username/public_html/fuga/以下にPHPで使用するデータファイルを配置する場合、
php_value include_path "/home/username/public_html/fuga"
を.htaccessに追加しておくことで、
PHPファイルでは、
require_once 'filename.inc';
と記述すれば、そのデータファイルをPHPプログラムで利用できます。
また、インクルードパスを設定しておくことで、配置場所の特定も簡単には出来ません。
こうしておけば、仮に、レンタルサーバーの不具合などで、PHPのソースプログラムが流出しても、データファイル名の流出までで済みます。
もっとも、.htaccessの制御が付かないような状態にまでなってしまったら、どうしようもないんですけどね。
その場合は、Webサーバー自体へのアクセスが出来ないことに期待するしかないのかな。
最後に一つ、
データファイル名やインクルードディレクトリは、よく使う名称は避けた方が無難です。
例えば、名前の前後に自分だけが分かる識別子を付けるなどして、出来る限り、ユニークな名称を付けるようにした方が、解析されにくくなります。
あと、PEARなど共通ライブラリなどは、そのままの名称でいいんですが、決してそこと同じディレクトリに、個人的なデータファイルを置いたりしないことが重要です。
推測しやすくなっちゃいますからね。
出来る限りの防衛はしておきましょう。
それと、IPA ISEC セキュア・プログラミング講座
は、必ず押さえておきましょう。
Comments
コメント入力は停止しています
海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。