2011-11-02 67 views
0

我已經制作了一個擁有MYSQL數據庫的會計,庫存,費用等公司網站,現在我只希望公司員工能夠訪問該網站。例如,管理員將訪問特定頁面,特定頁面的數據輸入操作員,特定頁面的銷售人員等。 我希望用戶名/密碼等安全地存儲在MySQL上,並在網站上有很強的安全性。 對於如何在網站上實現這一點,我非常無能。如果有人能指出我正確的方向,我將不勝感激。 在此先感謝如何保護只有員工訪問我公司的網站

回答

1

通常的方法是有兩個表,一個用戶和一個角色分配給這些用戶(因爲一個用戶可以有多個角色)。在您的示例中,角色可以是'經理','數據輸入','銷售'等。

創建一個登錄頁面,其中包含用戶名和密碼字段。在表單提交時,檢查提供的憑證是否有效(通過執行查詢),如果是,則將用戶數據存儲在當前會話中。在每個安全頁面開始時,從會話中檢索該數據,並檢查用戶是否有足夠的權限訪問該頁面(例如,具有正確的角色)。如果是,則渲染頁面;如果不是,則會導致某種錯誤。

如果您的網站是公開的,您應該擔心可能的攻擊。保護網站可能相當困難。您可以從閱讀關於一些常見攻擊和處理它們的方式開始:http://phpsec.org/projects/guide/

通常,安全性很難,而且我認爲最好的方法是使用一些現成的框架。你可以在這裏找到這樣的框架列表:http://en.wikipedia.org/wiki/PHP_frameworks#PHP_2。但是,如果您的網站已經制作完畢,可能會稍微遲一些,因爲它們往往相當重量級。也許PEAR :: Auth(http://pear.php.net/package/Auth)會幫助你?

+0

謝謝@ socha23你可以請參考我的地方爲這種現成的框架。我擡頭看,有很多會員軟件,但這是爲了維護一個龐大的會員基礎。我想要的只是保持約100個用戶,但他們將從不同的地方訪問,所以我需要有網站在線。謝謝 – mmdel

+0

更新我的答案 – socha23

1

在方式是,具有EmployeeID和EmployeeID的地圖用戶名應映射與角色。因此,在登錄時,根據登錄的員工角色將代碼寫入隱藏/顯示頁面。

+0

hi @Mohanavel我已經添加了userid的僱員table.but我添加的角色基於,我應該添加它明智的頁面,如果是的話,那麼我需要提及頁面標題在一個單獨的表用戶ID和頁面標題?然後在那之後我需要做什麼 – mmdel

+0

這有點難以解釋,我盡我所能。一種方法是,你可以有這樣的結構。員工表應具有指向角色表的角色ID(沒有映射表)或角色ID(通過映射表)。角色表應該有PageMapID(可能擁有特權)並指向PageMapID。 PageMap表應該有PageMapId和PageID,這PageID將指向Page Table。我想這會給一些想法。 – Mohanavel

1

您所問的內容涉及許多不同的方面,您需要考慮並且有點難在一個單一的答案解釋。

簡而言之: 製作一個用戶表。該表將具有用戶ID,名稱等以及用於特權級別的字段,該特權級別可以是用戶被允許訪問的所有區域的陣列。閱讀如何存儲用戶數據,如散列密碼等。

您必須在登錄時創建一個會話,並檢查會話以查看當前登錄的用戶是否被允許每次看到該頁面一個新的頁面被加載。看看基本的PHP會話處理和餅乾等。

現在使所有這些安全將需要大量的閱讀建設安全的webapps。對於初學者來說,您希望使用SQL語句的準備語句來防止注入攻擊,使用ssl登錄,以便用戶數據不會被攔截等。

您可以預防大多數安全風險,假設公司中沒有人希望通過在辦公室本地託管它並允許僅訪問本地網絡/ VPN或其他東西來危害系統。當然,除非你需要它可以在線訪問。