如何保护我公司网站只能访问员工

时间:2011-11-02 08:12:47

标签: php mysql

我已经建立了一个公司网站,其中包含会计,库存,费用等MYSQL数据库。现在我只希望公司员工能够访问该网站。例如,经理可以访问特定页面,特定页面的数据输入操作员,特定页面的销售人员等等。 我希望用户名/密码等安全地存储在mysql上,网站上具有很强的安全性。 我对如何在网站上实现这一点毫无头绪。如果有人能指出我正确的方向,我将不胜感激。 提前谢谢

3 个答案:

答案 0 :(得分:1)

在途中,使用EmployeeID和EmployeeID映射用户名应与Role映射。因此,在登录时,根据登录的员工角色编写代码以隐藏/显示页面。

答案 1 :(得分:1)

您所询问的内容涉及您需要考虑的许多不同方面,并且难以在一个答案中解释。

简而言之: 制作用户表。该表将具有userID,名称等,还有特权级别的字段,该字段可以是允许用户访问的所有区域的数组。阅读有关如何存储用户数据的信息,例如散列密码等。

您必须在登录时创建会话,并检查会话以查看每次加载新页面时是否允许当前登录的用户查看该页面。查看基本的php会话处理和cookie等。

现在让所有这些变得安全,需要大量阅读构建安全的webapps。对于初学者,您希望为SQL查询使用预准备语句以防止注入攻击,使用ssl登录以便无法拦截用户数据等。

假设公司中的任何人都不想破坏系统,通过在办公室本地托管并允许仅访问本地网络/ VPN等,您可以防止大多数安全风险。当然,除非您需要在线访问它。

答案 2 :(得分:1)

通常的方法是有两个表,一个用户和一个用户分配给这些用户(因为一个用户可以有多个角色)。在您的示例中,角色可以是“经理”,“数据输入”,“销售”等。

创建一个登录页面,其中包含用户名和密码字段的表单。在表单提交时,检查提供的凭据是否有效(通过执行查询),如果是,则将用户数据存储在当前会话中。在每个安全页面启动时,从会话中检索该数据,并检查用户是否有足够的权限来访问该页面(例如,具有正确的角色)。如果是,则渲染页面;如果没有,就会出现某种错误。

如果您的网站是公开的,您应该担心可能会对其进行攻击。保护网站可能非常困难。您可以先阅读一些常见的攻击以及在此处理它们的方法:http://phpsec.org/projects/guide/

总的来说,安全性很难,我认为最好的方法是使用一些现成的框架。您可以在此处找到此类框架的列表:http://en.wikipedia.org/wiki/PHP_frameworks#PHP_2。如果你的网站已经制作好了,那可能会有点晚,因为它们往往是相当重量级的。也许PEAR :: Auth(http://pear.php.net/package/Auth)会帮助你?