2013-04-24 129 views
-1

說,一個人的鏈接通過電子郵件發送給用戶。如果該人已在他/她的瀏覽器中登錄到該網頁,則點擊該鏈接將他/她帶到該頁面。但是,如果他/她未登錄,則應要求他/她登錄才能訪問該頁面。有沒有辦法使用jQuery,JavaScript來實現上述功能?防止未經授權的訪問使用jQuery的網頁,javascript

+5

如果你想要任何級別的實際安全性,你需要從服務器端進行控制。你的登錄狀態如何持續存在? – 2013-04-24 00:27:23

+0

假設授權是在服務器級別處理的,您可以使用類似jQuery-UI的模式對話框並提示輸入密碼(服務器在用戶未登錄時呈現代碼),或者將其重定向到具有「returnUrl」參數的登錄頁面。 – 2013-04-24 00:29:18

+0

你目前如何管理會話?如果你正在使用cookies,你可能想要使用Javascript來檢查它們,如果你使用$ _SESSION參數或使用PHP的任何方法,除了使用PHP來檢查用戶當前是否登錄以外別無選擇。 – RelevantUsername 2013-04-24 00:30:34

回答

1

是的。構建一個後端認證系統,使用AJAX以及您的服務器端語言。從那裏開發超媒體風格的內容系統和基於模塊化「小部件」的應用交付模型。

在您的超媒體對登錄的響應中(加上傳遞從電子郵件獲得的任何相關路徑信息),可以將頁面重定向到新頁面(基於來自服務器的鏈接響應),或者下載請求的窗口小部件從服務器(用於顯示媒體的任何應用程序)開始,然後在AJAX內容(再次從服務器響應指定的URL)中進行流式傳輸。

這就像您將要通過身份驗證實時交付客戶端的安全一樣。

如果您要加載報告/圖庫/遊戲/任何內容,並在其上放置一個div,並要求用戶登錄,那麼智能用戶可以殺死該div。

如果您包含內容或包含應用程序組件(JS文件),甚至包含指向要求並顯示內容的JS文件的鏈接,那麼聰明人會再次在20秒內反彙編,平坦。

我能看到做到這一點的唯一方法是有一個共同的請求點,以觸摸服務器,並根據成功傳遞給客戶端的「下一步」URL,有條件地加載應用程序授權和/或成功完成前一步驟的任何操作,並且對每個請求(基於REST的令牌+隨機數或其他)執行某種形式的認證...

這將保留內容(以及任何應用程序結構可能存在漏洞),直到您可以保證客戶端已被正確授權,並且整個應用程序在多個封閉/沙盒模塊內部運行,彼此之間無法直接訪問,並且只有基於實例的訪問一個共享庫。

這是值得的工作? 誰知道。

我們在談論NORAD核啓動iPhone應用程序,它必須在JavaScript中運行嗎? 那麼不,在接下來的六個月裏爲這件事情設計並不是太過分。

再一次,只要有一個人離開自己登錄,並且將他們的手機留在了桌子上,所有這些安全性都會發生(生物識別身份驗證,然後呢?)。

我們是在討論一個您希望阻止人們登錄的圖庫或折扣優惠嗎?那麼您知道只有受邀的人正在使用它們嗎?
那麼,一個爲期18個月的項目就是設計,開發,調試和部署這樣的系統,這可能會過度。

在這種情況下,也許您可​​以盡力防止普通人盜用您的內容或使用您的降價,並且接受那些花時間挖掘和逆向工程的人將要找到一種方式來獲得他們想要的東西,95次中有100

在這種情況下,也許只是把一個登錄格設置上層建築的頁面就是你打算怎麼找...

如果您正在與公司後端或公司財務部門或最終用戶,私人數據或任何其他類型進行交易,那麼除了滿足收集/顯示/存儲的法律要求外,還需要多少額外的工作你投入安全系統的性能取決於貴公司願意爲此付出多少。

如果它讓你感覺好一點,那麼有一些公司在那裏每年支付60,000-15,000美元來使用Adobe的JS跟蹤/測試程序。那些程序就坐在那裏,大部分時間在任何人看到的網頁上,只要你知道去哪裏看。

所以這不完全是一個未知的問題。

0

是的。通過身份驗證(登錄),您可以存儲必須在會話結束時刪除的「loggedIn」Cookie(註銷或關閉瀏覽器)。您可以使用該cookie來檢查是否有人登錄。如果未登錄,則可以顯示登錄頁面並使用ajax發送登錄請求。順便說一下,使用這種混合應用程序並不是一個好習慣。最好使用SPA-s和REST服務,或者在服務器端實現。