2011-11-02 73 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或其他东西来危害系统。当然,除非你需要它可以在线访问。