为用户和管理员使用单个应用程序(使用不同的身份验证方法)与将它们分成两个应用程序

信息安全 访问控制
2021-09-05 09:22:02

我正在创建一个允许员工和人力资源管理员访问的人力资源管理应用程序。现在,我面临一个最佳实践问题。

肯定会有两个用户:Employee 和 HR Admin。我想问一下,将 HR admin 端和employee 端放在一个应用程序中,并为 HR admin 和员工提供不同的页面集(这将由帐户类型决定)是否存在安全风险登录帐户)。这被认为是最佳实践,还是不会造成安全问题/威胁?或者我应该只创建两个单独的应用程序(用于员工端和人力资源管理端)?

谢谢!

2个回答

如果操作正确,任何一个选项都可以工作一般来说,我更喜欢使用同一个应用程序,因为它更易于维护,特别是如果两个应用程序共享许多公共代码。但是,有一些考虑因素可能会使天平有利于两种不同的应用,主要是:

  1. 将单独的 HR 应用程序锁定为不仅仅是登录角色更容易。例如,员工应用程序可以通过互联网公开访问,但人力资源应用程序可能被锁定到内部网络,甚至某些用户的工作站。
  2. 在没有访问权限的情况下,暴力破解 HR 应用程序的有效登录会更加困难。
  3. 对于单个应用程序,开发人员可能会犯错误并意外地将管理功能暴露给普通用户。这显然不会发生在单独的应用程序中。(这就是为什么我在第一句话中强调“如果做得正确”。)

您绝对可以使用单个应用程序。虽然实现起来可能比两个单独的应用程序稍微复杂一些,但使用具有多个访问级别的单个应用程序是常见的做法并且可以接受。

身份验证对于这两种方法都很重要,但是对于单个应用程序,您必须确保所有管理功能都受到保护。每次执行只有管理员才能执行的操作时,请检查用户访问级别。使用这种方法的好处是您不必为共享功能重用任何代码/页面,并且您只需维护/修补一个应用程序。