@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

特定のディレクトリとファイルのアクセス制限(PHP,Apache)

1
投稿者投稿内容
わんこ
会議室デビュー日: 2007/04/24
投稿数: 7
投稿日時: 2007-04-24 10:58
www.test.com/files/tempfolder/sample.doc
とブラウザでURLを直接入力した場合、
ログインしている状態では、sample.docを表示。
ログインしていない状態ではsample.docを表示せず、
www.test.com/login.phpにリダイレクトしたいのですが、
何かよい方法はありますでしょうか?
(外部から、万が一URLを直接入力してファイルを参照されることを防ぎたい)

ちなみに、ユーザ情報はDBに登録され、
tempfolderの名前はログインする度に、毎回フォルダ名を変える仕様です。

環境は、PHP5.1 MYSQL5.0.x Apache2.0.x Fedora Core6 (LAMP)
です。

よろしくお願いします。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-04-24 11:20
引用:

未記入さんの書き込み (2007-04-24 10:58) より:
http://www.test.com/files/tempfolder/sample.doc
とブラウザでURLを直接入力した場合、


files/.htaccessでcookieの有無をチェックするくらいでいいのでは?
tempfolderの名前を変えるのであれば、この程度でいいような気がします。

[ メッセージ編集済み 編集者: shimix 編集日時 2007-04-24 11:21 ]
わんこ
会議室デビュー日: 2007/04/24
投稿数: 7
投稿日時: 2007-04-24 11:28
早速の返事ありがとうございます。

引用:

files/.htaccessでcookieの有無をチェックするくらいでいいのでは?



これは、具体的にどのようにすればいいのでしょうか?
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-04-24 11:37
ログイン処理で
コード:
SetCookie("usermode", "login");

などとしておいて
files/.htaccessで
コード:
ErrorDocument 403 /login.php

SetEnvIf Cookie "usermode=login" Cookie_OK
order deny,allow
deny from all
allow from env=Cookie_OK



(蛇足)
レンタルサーバ運用での「画像の直リンク制限」でもよく使います>Cookieでのアクセス制限(そういうケースではJavaScriptやmetaタグでCookieを設定したりします)。

[ メッセージ編集済み 編集者: shimix 編集日時 2007-04-24 11:41 ]
わんこ
会議室デビュー日: 2007/04/24
投稿数: 7
投稿日時: 2007-04-24 12:25
shimix様

やり方を教えて頂き、勉強になりました。
早速、試してみます。
本当に、本当にありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)