我已經制作了一個擁有MYSQL數據庫的會計,庫存,費用等公司網站,現在我只希望公司員工能夠訪問該網站。例如,管理員將訪問特定頁面,特定頁面的數據輸入操作員,特定頁面的銷售人員等。 我希望用戶名/密碼等安全地存儲在MySQL上,並在網站上有很強的安全性。 對於如何在網站上實現這一點,我非常無能。如果有人能指出我正確的方向,我將不勝感激。 在此先感謝如何保護只有員工訪問我公司的網站
回答
通常的方法是有兩個表,一個用戶和一個角色分配給這些用戶(因爲一個用戶可以有多個角色)。在您的示例中,角色可以是'經理','數據輸入','銷售'等。
創建一個登錄頁面,其中包含用戶名和密碼字段。在表單提交時,檢查提供的憑證是否有效(通過執行查詢),如果是,則將用戶數據存儲在當前會話中。在每個安全頁面開始時,從會話中檢索該數據,並檢查用戶是否有足夠的權限訪問該頁面(例如,具有正確的角色)。如果是,則渲染頁面;如果不是,則會導致某種錯誤。
如果您的網站是公開的,您應該擔心可能的攻擊。保護網站可能相當困難。您可以從閱讀關於一些常見攻擊和處理它們的方式開始:http://phpsec.org/projects/guide/
通常,安全性很難,而且我認爲最好的方法是使用一些現成的框架。你可以在這裏找到這樣的框架列表:http://en.wikipedia.org/wiki/PHP_frameworks#PHP_2。但是,如果您的網站已經制作完畢,可能會稍微遲一些,因爲它們往往相當重量級。也許PEAR :: Auth(http://pear.php.net/package/Auth)會幫助你?
在方式是,具有EmployeeID和EmployeeID的地圖用戶名應映射與角色。因此,在登錄時,根據登錄的員工角色將代碼寫入隱藏/顯示頁面。
您所問的內容涉及許多不同的方面,您需要考慮並且有點難在一個單一的答案解釋。
簡而言之: 製作一個用戶表。該表將具有用戶ID,名稱等以及用於特權級別的字段,該特權級別可以是用戶被允許訪問的所有區域的陣列。閱讀如何存儲用戶數據,如散列密碼等。
您必須在登錄時創建一個會話,並檢查會話以查看當前登錄的用戶是否被允許每次看到該頁面一個新的頁面被加載。看看基本的PHP會話處理和餅乾等。
現在使所有這些安全將需要大量的閱讀建設安全的webapps。對於初學者來說,您希望使用SQL語句的準備語句來防止注入攻擊,使用ssl登錄,以便用戶數據不會被攔截等。
您可以預防大多數安全風險,假設公司中沒有人希望通過在辦公室本地託管它並允許僅訪問本地網絡/ VPN或其他東西來危害系統。當然,除非你需要它可以在線訪問。
- 1. 如何使我的公司只能看到AWS靜態網站
- 2. 鑑於公司名稱的列表,如何取的公司名稱,網站網址,年成立,員工等
- 3. 如何訪問受保護的成員
- 4. 網站訪問通過密碼保護
- 5. 如何保護我的網站
- 6. 無法通過公司局域網訪問網站
- 7. 我如何才能在只有我可以訪問的PHP網站上工作?
- 8. 如何保護我的視頻播放,只有在我的網站
- 9. 保護我的網站
- 10. 如何正確保護對網站的訪問
- 11. 如何僅限Azure管理門戶網站訪問公司網絡(IP範圍)
- 12. 如何保護PHP我的管理員訪問
- 13. 如何顯示空{}所有的公司沒有員工
- 14. 向公司提供網站
- 15. 爲公司網站收費
- 16. Windows Azure網站狀態有限公司
- 17. 由2家公司維護的網站的部署過程
- 18. 保護PHP網頁訪問
- 19. 保護網站
- 20. 如何從我的網站禁止整個公司?
- 21. 如何複製Drupal 7網站只有管理員訪問沒有FTP
- 22. 我如何訪問要訪問網站管理工具
- 23. 如何將公司的React-Native應用程序部署到公司的員工?
- 24. 免費訪問受保護的成員
- 25. 無法訪問受保護的成員
- 26. 訪問受保護的成員
- 27. 錯誤訪問受保護的成員
- 28. 無法訪問受保護的成員?
- 29. 訪問klarna API的受保護成員
- 30. 訪問受保護的成員
謝謝@ socha23你可以請參考我的地方爲這種現成的框架。我擡頭看,有很多會員軟件,但這是爲了維護一個龐大的會員基礎。我想要的只是保持約100個用戶,但他們將從不同的地方訪問,所以我需要有網站在線。謝謝 – mmdel
更新我的答案 – socha23