2010-09-16 60 views
4

我有一個HTML5應用程序,它可以脫機運行。但是,我需要密碼保護此應用程序所在的目錄才能訪問授權用戶。最初,我使用的PHP登錄頁面設置了一個cookie(在app目錄之外),然後重定向到app目錄。應用程序(JavaScript)檢查cookie,如果它在那裏,它可以讓用戶運行應用程序。如果沒有,它會將它們重定向回app目錄。密碼保護HTML5離線應用程序目錄

這種方法的問題是,如果直接引用(我不想),目錄中的所有文件仍然可以訪問。我不希望用戶每次訪問該目錄時都必須進行身份驗證(這是一次性身份驗證過程; cookie在那裏,以便他們再也不必再輸入用戶名/密碼),而且我還想要一個程式化的登錄表單(即不使用默認的瀏覽器登錄框進行http認證)。

最後,因爲這是一個離線HTML5應用程序,所以我不能在應用程序中包含任何PHP代碼。

有什麼建議嗎?

回答

1

這聽起來不像你可以用Javascript做的事情。腳本需要訪問文件系統才能限制對該文件夾的訪問,不是嗎?

除非瀏覽器通過JavaScript API公開此功能,否則我認爲這是不可能的。這聽起來像是一個有用的功能。

也許你可以加密的重要數據,但除了減慢應用程序,我不知道有什麼好它會做,因爲所有必需的密鑰必須也被本地存儲...

由於Web上安全的一般規則是,如果不在服務器端進行雙重檢查,您永遠無法依賴客戶端發生的任何事情(例如使用Javascript),當應用程序運行時,這當然會造成問題離線和服務器端不可用:(

看着「讓Javascript重定向,如果cookie存在」的問題,除非我錯了,這將是微不足道的惡意用戶編輯的Javascript,使用例如Firebug,在任何情況下重定向。

編輯:順便說一下,你在尋找什麼樣的安全級別? 「媽媽不會意外訪問我的賬戶」 - 級別(這聽起來像你已經達到的),或者「除了NSA之外,沒有人應該能夠破解它」 - 級別?

+0

我希望我可以回覆你的每段內容,因爲你提出了一些非常好的觀點。我會盡我所能解決每個問題。我同意這理想情況下需要成爲目前不存在的瀏覽器API實現。這將是最好的情況,但只是不可用。至於加密,我在這裏提出的最佳場景是將「公鑰」發送給用戶,以便他們可以「解鎖」應用程序(即解密)。不是最好的情況,但它至少增加了額外的保護。 ...(繼續在下一個評論)... – ggutenberg 2011-05-01 15:13:00

+0

我試過使用http身份驗證,但它失敗,只要用戶脫機(出於顯而易見的原因),所以無論是在這種情況下或基於PHP的服務器端身份驗證,它只是不是一個選項。至於通過Firebug編輯JS,我同意這是一個問題。出於這個原因,除了「公鑰」方法(或作爲替代 - 尚未完全決定是否使用該方法),現在有多層次的檢查(cookie,localStorage等)。 )。誠然,精明的用戶仍然可以解決它,但它需要大量的代碼解析... – ggutenberg 2011-05-01 15:15:46

+0

最後,重新。安全級別 - 我想我想介於兩者之間的某個地方。假設我更喜歡如果StackOverflow用戶無法訪問我不希望它們的文件(也許這意味着比NSA更安全 - 不確定;)) – ggutenberg 2011-05-01 15:17:05