我已经制作了一个拥有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