- ベストアンサー
ドキュメントルート外のファイルにアクセスする隠蔽の方法とは?
- Apacheの初心者がドキュメントルート外のファイルにアクセスするための隠蔽の方法について調べました。
- Alias設定を使用してドキュメントルート外のファイルをドキュメントルートの配下に配置されたように見せることができます。
- しかし、Alias設定は隠蔽の手法ではなく、ファイルにアクセス可能な状態を作り出すだけです。他の隠蔽の手法を検討する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1&2です。 >PHPファイルの呼び出しですが、WEBサイトのログイン画面にてform要素のactionで呼び出しを行っております。 考え方が間違ってます。 隠蔽=「aのlinkとか、imgのsrcとか、formのactionとか等から呼び出せない」 です。言い方を変えると、「URLを持たない」です。 actionのlogin.phpは普通に置いて、その中から、パスワード記述の部分だけ別ファイルに切り出して、それをドキュメントルートの外に置き、それをlogin.phpからrequire_once("ファイルのフルパス")で呼び出します。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
No1です。 お礼の前半の考え方は正しいです。 >ところが、PHPファイルを呼び出そうと試みても、ドキュメントルート外のディレクトリにアクセスできず、下記のようなエラーが出力されてしまいました。 >The requested URL [PHPファイル] was not found on this server. どんなrequireを書いたのですか? require_once("/home/user/sqlpass.php"); みたいな感じで書いてください。
お礼
たびたびありがとうございます。 PHPファイルの呼び出しですが、WEBサイトのログイン画面にてform要素のactionで呼び出しを行っております。 [ソース例]----------------------------------------- <form method="post" action="../php/login.php"> <input id="email" type="email">・・・ログインメールアドレス <input id="password" type="password">・・・ログインパスワード <div> <input type="submit" name="login" value="ログインボタン" /> </div> </form> -------------------------------------------------- メールアドレスとパスワードをPOSTで取得し、相対パスでドキュメントルート外のPHPファイル"../php/login.php"を呼び出しております。 "../php/login.php"内でsqlにアクセスし、メールアドレスとパスワードの組み合わせがないか判別しております。
- notnot
- ベストアンサー率47% (4900/10358)
>この解釈は間違っていますでしょうか? 正しいです。 >またそもそも隠蔽の手法に、Alias設定は不適合なのでしょうか? はい。隠蔽になりません。 >その場合、正しい隠蔽の手法をご教授いただきたく。 隠蔽とは、ウェブサーバー経由で直接見られないようにすると言うことです。ドキュメントルートやAliasなどで指定されているディレクトリ外に置けばそれだけで隠蔽できてます。 何のためにAliasを設定したいなどと思ったのかその理由を聞かないことには何とも。
お礼
ご回答ありがとうございます。 >>何のためにAliasを設定したいなどと思ったのか ↑ こちらの件、経緯をご説明させていただきます。 はじめにドキュメントルート下に、WEBサイトを構成する全ファイルを置き、作成を進めておりました。 その中には、サイト閲覧者に参照されたくないファイル(特にsqlのpasswordが記述されたPHPファイル)があり、これらを直接見られる可能があってはまずいと思い、ドキュメントルート外に出し、相対パスでドキュメントルート外のPHPファイルを呼び出すように変更しました。 ところが、PHPファイルを呼び出そうと試みても、ドキュメントルート外のディレクトリにアクセスできず、下記のようなエラーが出力されてしまいました。 [エラー例]-------------------------------------------- Not Found The requested URL [PHPファイル] was not found on this server. ---------------------------------------------------- そこでgoogleで色々調べていたところ、Alias設定でドキュメントルート外のファイルにアクセスできるという記述を発見し、当サイトで質問させていただいたしだいです。
お礼
ご指摘のとおり、login.phpのパスワード部分のみドキュメントルート外に置いたところ、無事にログイン処理を行うことができました。 この手法で画像ファイルも、隠蔽できないか考えてみようと思います。 多くのアドバイスをいただき、誠にありがとうございました。勉強になりました。