2013-03-08 454 views
0

我正在開發一個網站,其中包含管理員部分。我谷歌搜索了這一點,並發現有關實現這一點的最佳方式的相互矛盾的信息(在博客上)。我希望你們中的一些人能夠讓開發者有第一手的經驗。使用Coldfusion的身份驗證系統

是更好地有已完成然後管理區域內的認證或之後login.cfm和login_process.cfm文件航線用戶管理領域? 它真的很重要嗎?我更傾向於將用戶路由到管理區域,這主要是爲了將管理區域的位置隱藏給沒有帳戶的人員,以幫助防止黑客入侵。

支持您的答案的鏈接是讚賞,但不是必需的,除非我得到衝突的答案。 :)

+0

我總是把我的登錄文件放在我的安全區域之前。它更易於管理。然後在application.cfc中,我可以檢查cgi.script_name是否包含'/ secured /',session.adminid是「」以確保整個結構中的文件cfm文件未被訪問。我已經這樣做了超過10年,沒有任何問題。 – steve 2013-03-08 16:20:31

回答

3

在所有安全方面,登錄腳本所在的位置並不重要。

重要的是,在授予用戶對安全腳本的訪問權限之前,您實際上會檢查以確保用戶已通過身份驗證和授權,而不僅僅依賴於他們不知道管理網址的位置他們已經登錄了。我無法告訴你,我看到有多少破損的網站在谷歌管理網址的索引處,讓任何人都可以進入。

因此,您的身份驗證過程應該有兩個步驟。

  1. 驗證(您login.cfmlogin_process.cfm腳本)。這應該檢查用戶憑證,然後通常在用戶的範圍內設置一些內容。

  2. 授權(在您的管理區域)。這應該檢查用戶是否已登錄(查看您在步驟1中設置的session變量),以及(如果您正在實施基於角色或權限的授權)用戶是否有權訪問請求的資源,顯示錯誤或者如果不是,則給予重定向。

如果你想保護整個目錄,它通常是最容易實現這在管理目錄中的application.cfm|cfc(這樣就自動在該目錄中的所有頁面調用)。如果你走這條路線,將login腳本放在受保護的目錄之外是最容易的,所以你最終不會要求用戶登錄才能訪問登錄腳本。

+0

我沒想過要保護整個目錄 - 我非常喜歡這種方法。你能提供一個鏈接或解釋如何做到這一點?我的假設是你要在application.cfm | cfc根級別(通過login.cfm和login_process.cfm)設置會話變量,然後在admin/Application.cfm | cfc級別執行檢查,對吧? – HPWD 2013-03-08 17:23:25

+0

另外,我是否需要在admin \ application.cfm | cfc文件中包含根application.cfm | cfc文件? – HPWD 2013-03-08 17:28:40

+0

我沒有鏈接,但它應該很容易。在你的登錄過程中,只要設置一些用戶認證後持久化的東西,例如'session.username =#username#',然後在admin/application.cfm中添加一個子句,比如''。如果你在那裏做其他有趣的事情,你可能需要包含父母。如果你使用的是application.cfc,那會在'onRequestStart'方法中進行。 – 2013-03-08 18:30:00

2

請記住,cf只能保護cfm文件,如果知道url,它不會阻止任何人訪問圖像,.html,.pdf文檔等。所以這取決於你想保護什麼。如果它是一個簡單的管理區域,他們可能就足夠了。 爲了獲得最佳安全性,如果您需要保護非cf文件和資源,則應使用htaccess或類似命令來保護整個文件夾及其中的所有內容。 有一些方法可以在小規模上使用cfcontent來完成它。

相關問題