menu
ホーム > PHPセキュリティー > 9 インクルード > 9-1 インクルードファイルの扱い [PHPセキュリティー]
UPDATE:2017年08月09日

9-1 インクルードファイルの扱い [PHPセキュリティー]

PHPセキュリティ


データファイルの流出

アプリケーションを作る際、多くのPHPファイルで読み込むような設定ファイルを作成する場合があると思います。例えばデータベースへアクセスする認証コードが記載されたファイルなどです。そのような設定ファイルをインクルードして共通の設定内容を読み込むことは便利ですし、メンテナンス性も向上します。ですが、誤った設定ファイルの扱いにより、その内容が外部に流出することがあります。結果としてブラウザに設定ファイルのソースコードが表示されてしまします。それは以下のような場合に頻繁に発生します。

POINT

  • 設定ファイルの拡張子が .inc
  • 設定ファイルをドキュメントルート内に設置
  • apacheが.incファイルのリソース型を決められない
  • apacheのリソース型としてDefaultTypeがtext/plainになっている

これらのことが重なった結果、設定ファイルがURL経由でアクセスされ、ソースコードがブラウザに表示されることになります

設定ファイルはドキュメントルート以外に設置し、拡張子は.phpにしましょう。.incにする場合は、apacheに.incファイルをPHPとして処理させ、.incリソースへのアクセスを拒否させることでも回避できます。

POINT

  • 設定ファイルはドキュメントルートの外に格納
  • インクルードするファイルは.phpを使用する
  • apacheに.incファイルをPHPとして処理させる
  • apacheに.incリソースへのアクセスを拒否させる


バックドアURL

POINT

  • バックドアURLとはURLから直接アクセスできてしまうこと

バックドアURLとは、悪意がない場合であっても、URLから直接アクセス出来てしまうリソースのことです。

例えば、アプリケーションは認証後にファイルをインクルードしてその内容を読み込むように意図していたとします。

person.phpがドキュメントルート内にある場合、auth() の認証を通らなくても、ブラウザのURLから直接アクセスできてしまいますドキュメントルート内にあるリソースはすべてブラウザで表示可能であると考えてください。公開されてはいけないファイルは必ずドキュメントルート以外に設置しましょう。


タグ(=記事関連ワード)

日付

投稿日:2017年8月6日
最終更新日:2017年08月09日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://wepicks.net/phpsecurity-incfiles/trackback/

page top