【问题标题】:Better admin security更好的管理员安全性
【发布时间】:2014-10-05 12:24:39
【问题描述】:

我尝试制作我的第一个 CMS,但我对安全性有疑问。我现在有单独的管理区域和公共区域。我的管理区域在文件夹“admin”中,我的公共区域在文件夹“public”中。这两个文件夹都在我的文件夹“cms”中。在这两个地图中,例如:名为“index.php”的文件。内容是相同的,但在管理员的 index.php 中还有更多功能,例如:在管理员的导航中,我有注销和设置选项。那么,如果我从这两个文件夹中创建一个名为“public”的文件夹,并且将两个“index.php”连接到一个文件中并使用 $_SESSION 控制它以向导航添加附加功能,那会更好吗? 示例:如果是管理员登录,则会话将显示设置和注销功能以进行导航。当用户注销时,他不会在导航中看到设置和注销功能,因为它只会在用户设置会话时显示。 那么,分开管理文件夹和公用文件夹会更好更安全,还是将所有内容放在一个文件中是否相同?

【问题讨论】:

  • 将其分开并不会使其更安全,即使在管理部分使用随机文件夹名称,这仍然是默默无闻的安全性,这并不值得。如果视图非常不同,则拆分视图可能是有意义的,但如果它只是这里和那里的链接,听起来不会使普通视图文件过于混乱。
  • 您的问题似乎更多关于可用性与安全性。如果这真的避免了主应用程序中的管理代码,那么将它分开是有意义的。降低复杂性有时确实有助于安全性。使用两个因素授权(例如,客户端 ssl 认证结合登录表单)也更容易保护单独的文件夹。

标签: php mysql session login


【解决方案1】:

在我的 cms 中,我为公共、用户和管理员使用相同的页面。

不同之处在于根据组显示一些额外的功能。

即对于普通访问者(公共)用户,除了发布的内容外,看不到。但是如果访问者登录到他的帐户,那么他会在这里和那里看到一些额外的和平(即个人资料 img、个人信息、更改电子邮件/密码)。另一方面,管理员也有自己的附加功能,例如控制用户、消息等。

当然,有时这 3 级权限之间不共享全新的东西。在这种情况下,我为他们创建一个单独的页面...

这里最重要的是检查用户组,并根据该组显示该部分并隐藏该部分。

类似

if user group == 1 // an admin
{
display admin_sidebar.php
}
elseif user group == 2 // a member
{
display member_profile.php link
}

当然,在用户登录到您的网站后,您当然需要使用会话来为您处理该组。

希望对您有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多