2009-08-28 4 views
1

私は、Webアプリケーション用のモジュールとしてサーバーエクスプローラの種類を開発しました。私はそれにいくつか改良を加えています。私は本当にどのように取り組むべきか分かりません。Perl:現在のフォルダの.htaccessステータスを取得する

エクスプローラは、主に指定されたフォルダとサブフォルダから画像を選択するために使用されます。いくつかの学校は設立外の写真の配布に関心を持っているため、望むのであれば、.htaccess(実際には.htaccessを設定するWeb-Interfaceを介して)で画像を保護するオプションを与えました。

.htaccessで保護されているフォルダにアクセスしようとすると、そのフォルダ内のすべての画像に対してパスワードを要求されます。教師はすべての主要なイベントで100以上の写真を撮る傾向があり、1つのフォルダに詰め込むのが好きなので、ブラウザが100以上のダイアログボックスを開くことはまれではありません。

バックエンドでPerlを実行しているので、コンテンツをjQueryに配信する前に、特定のフォルダが保護されているかどうかを確認できます。問題は、画像を親フォルダの.htaccessで保護することができることです。

画像を提供する前に、外部の人がこれらの画像(またはファイルにアクセスして汎用性を維持し、他の用途に使用する)にアクセスできるかどうかを確認する安全な方法はありますか?

EDIT - を追加しました.htaccessファイル
## OLEFA AUTH START ##
のAuthType Basicの
でAuthName "192.168.1.120/resources/images/accesstest"
AuthUserFileは/ホーム/マイク/ワークスペース/ olefa //リソース/画像/ accesstest/
が有効なユーザー
##あなたが探検したい場合がありますOLEFA AUTH END ##

+0

ブラウザでCookieが保存されていませんか? 1つの.htaccessファイルのパスワードを繰り返し入力する必要はありません。他の何かが間違っていると思います。 – Telemachus

+3

HTTP認証はクッキーを使用しません*。ほとんどのブラウザは、資格情報を覚えておき、その後のリクエストでそれらを提供します。 –

+1

@私は "素晴らしい作品"は限られた情報に基づいていると思っています。私はあまりにも多くのアプリケーションを見てきました。セキュリティで保護された接続(SSL)でHTTP認証が行われていない限り、ユーザーに誤ったセキュリティ感覚を与えています。 –

答えて

1

オプションは、各ディレクトリ内の非画像プレースホルダファイルを保存し、前にそれを取得している必要の.htpasswd画像。検索に失敗した場合は、イメージをプルしないで、ディレクトリがこのユーザーに対して保護されていると解釈します。そうすれば、1つのパスワードダイアログが表示され、有効なユーザー名とパスワードを持っていれば、ブラウザは画像検索のためにそれを記憶します。

+0

JSONがロードされた場合、jQueryが成功を返し、ファイルがアクセス可能であるかどうかに関係なく、問題が発生する可能性があります。 (JSONは実際にはjQueryが実際にそれらを試している間にページへのリンクを配信するだけです)。私は、何かが公に利用可能でないかどうかを知るための方法を考えていました。そうでない場合、特別なパラメータを返して、jQueryが写真をロードしようとする前に資格情報を要求することができます。リストからそのフォルダを削除してください)。 – Mike

+1

jQueryが成功を返したかどうかはわかりません。プレースホルダファイルの既知の内容(たとえば、 "成功"という単語)を取得したかどうかを調べます。 – chaos

+0

.htaccessには特定のファイルセットを制限するディレクティブが含まれている可能性もあります。その場合、プレースホルダファイルがそのセットに含まれていなければ、テクニックは中断します。 –

0

不十分なデザインやプロセスにコード化されたレイヤーをレイヤー上にビルドしているようですね。

私は当初、容疑者、同じディレクトリからすべての画像のためのユーザ名とパスワードのダイアログを取得している場合:

  1. htaccessファイルは何とか間違って設定されています。あなたが持っているものを私たちに見せてくれますか?
  2. ユーザーエージェントは認証ヘッダーを送信していません。 HTTPリクエストを見て、認証ヘッダーが表示されていることを確認します。また、応答の状態を見てください。それは401か403か?

異なるパスでリソースにアクセスしようとしている場合は、各フォルダごとに異なる領域を使用していますか?資格証明は、チャレンジを提示した領域にのみ適用されます。別のレルムにアクセスして、最初からやり直す必要がある場合。どのようにhtaccessでそれを指定していますか?

たちを助けることができるいくつかの他の事を:あなたが使用している認証のどのような

  • ?基本、ダイジェスト、その他何か?
  • カスタム認証ハンドラを使用していますか?
+0

更新日:.htaccessが今質問しています – Mike