2009-08-28 32 views
1

我已經開發了一種服務器資源管理器作爲我們Web應用程序的模塊,並且它實際上效果很好。我正在對它進行一些改進,但有一個問題我不知道如何處理。Perl:在當前文件夾中獲取.htaccess狀態

資源管理器主要用於從指定文件夾和子文件夾中選擇圖片。由於有些學校關心的是在他們的創建之外分發圖片,我們給了他們一個選擇,如果他們想要的話,使用.htaccess保護他們的圖片(實際上通過Web界面,然後設置.htaccess)。

當我嘗試訪問受.htaccess保護的文件夾時,系統會提示該文件夾內每張圖片的密碼。值得注意的是,教師傾向於在每個重大活動中都會拍攝超過100張照片,並且喜歡將其塞入到一個文件夾中,所以瀏覽器打開100多個對話框實際上並不罕見。

我們在後臺運行Perl,所以我認爲我可以在將內容傳遞給jQuery之前檢查給定的文件夾是否受到保護。問題是,圖像也可以通過來自父文件夾的.htaccess進行保護。

是否有任何安全的方法來檢查局外人是否可以在發放圖片之前訪問這些圖片(或文件,以保持它的通用性和開放的其他用途)?

編輯 - 添加.htaccess文件
## OLEFA AUTH START ##
基礎進行AuthType
AuthName指令 「192.168.1.120/resources/images/accesstest」
的AuthUserFile /家庭/麥克風/工作區/ olefa //資源/圖片/ accesstest/htpasswd的
需要有效的用戶
## OLEFA AUTH END ##

+0

瀏覽器不保存cookies?您不應該反覆提示一個.htaccess文件的密碼。我想,還有其他的錯誤。 – Telemachus 2009-08-28 10:29:34

+3

HTTP身份驗證不*使用Cookie。大多數瀏覽器記住憑據並在隨後的請求中提供它們。 – 2009-08-28 11:51:24

+1

@Mike我認爲「偉大的作品」是基於有限的信息。我看到太多應用程序「很好地工作」充滿了漏洞。除非在安全(SSL)連接上進行HTTP身份驗證,否則您會給用戶一種錯誤的安全感。 – 2009-08-28 12:15:27

回答

1

你可能要探討的是存儲在每個目錄中的非圖像佔位符文件和前檢索它的選項圖片。如果您無法檢索它,則不會執行圖像拉取,並將其解釋爲表示該目錄已針對此用戶進行了保護。這樣,你只會彈出一個密碼對話框,如果他們有一個有效的用戶名和密碼,瀏覽器會記住它的圖像檢索。

+0

有可能是一個問題,因爲如果JSON加載jQuery返回成功,如果該文件是可訪問的獨立。 (JSON只是傳遞鏈接到頁面,而jQuery實際上試圖放置它們)。我正在考慮一種方法讓Perl找出是否有公開可用的東西,如果沒有,返回一個特殊的參數,以便jQuery可以在嘗試加載任何圖片之前請求憑據(或者至少不要讓jQuery嘗試加載圖片或從列表中完全刪除該文件夾)。 – Mike 2009-08-28 12:26:55

+1

所以不要通過jQuery是否返回成功;檢查是否檢索了佔位符文件的已知內容(例如,單詞「success」)。 – chaos 2009-08-28 12:34:04

+0

.htaccess也可能包含指令,它們限制特定的文件集,所以除非佔位符文件在該集合中,否則該技術將在此情況下中斷,指示訪問在實際上受限制時被允許。 – 2009-08-28 13:09:19

0

這聽起來像你可能正在建立一層一層的修復它的代碼到一個不足的設計或過程。

如果您收到來自同一目錄中的所有圖像的用戶名,密碼的對話框,我開始懷疑:

  1. htaccess的是某種錯誤配置。你能告訴我們你有什麼嗎?
  2. 用戶代理未發送授權標頭。查看HTTP請求以驗證您是否看到Authorization標頭。也看看響應狀態。是401還是403?

如果你想在不同的路徑來訪問資源,您使用的每個文件夾不同的境界?證書只適用於提出挑戰的領域。如果你訪問另一個領域,你必須重新開始。你如何在你的htaccess中指定?

其他有些東西可以幫助我們:

  • 你用什麼樣的認證?基礎,摘要,別的?
  • 您是否使用自定義授權處理程序?
+0

更新:.htaccess現在在問題中 – Mike 2009-08-31 13:16:43