在PHP中设置管理区域最安全的方法是什么?

时间:2010-10-01 13:49:05

标签: php security

最近,我一直在考虑在网站上设置管理区域的最安全方式。我正在玩弄的两个选项是,

  • 创建管理区域作为主站点的一部分,要求他们首先使用他们的电子邮件地址作为用户名进行注册,并使用管理员级别进行设置。
  • 创建一个完全独立的用户无需注册的网站的管理区域,而是由其他管理员设置。

我意识到如果我将管理区域设置为与网站分开,这将要求用户在他们甚至尝试进入之前发现管理面板在那里。这增加了多少安全性?

然而,强迫他们在主站点上注册一个电子邮件地址会将他们的帐户绑定到一个电子邮件地址,我认为这有助于提高安全性?但是将管理区域放在主站点上会使攻击更容易,因为所有用户需要做的就是在系统中找到一个错误吗?

我想我可以看到两者的正面和负面。

6 个答案:

答案 0 :(得分:3)

  

我意识到如果我将管理区域设置为与网站分开,这将要求用户在他们甚至尝试进入之前发现管理面板在那里。这增加了多少安全性?

这就是你所谓的“通过默默无闻的安全”。一般来说,它只会阻止黑客的持久性。对于那些打算黑客攻击你网站的人来说,这只能暂时延迟他们的成功。

但是,当放置在已经安全的系统之上时,Obscurity仍然有用。使用它可以防止普通最终用户看到他们不一定想要或不需要看的东西。

答案 1 :(得分:1)

您还可以强制他们将单独的管理网站与主网站上存在的电子邮件地址一起使用。事实上,两者兼顾;在他们的主帐户上添加一个标记,上面写着“好吧,这个是管理员”。这样您就可以在mainsite上显示指向管理站点的iframe,并且在管理站点上连接的任何人都必须设置此标志

最后,不要忘记单点登录;在连接到任何网站时,创建两个cookie,这样他们就不必在两个地方进行身份验证(除非他们必须按设计)

答案 2 :(得分:0)

我的经验法则是(大部分):

登录后,管理员是否在网站的设计中做了什么,或者他们是否采用了一些完全不同的“设计”(就像大多数CMS的后端一样)。如果它们保持相同的设计(AND站点可以注册用户),那么仅在主站点上创建管理员级帐户是有意义的。

如果没有用户注册的选项,请使用/admin/之类的后端,并将其称为一天。

此外,“hackable”取决于数百万因素,管理员的登录位置恕我直言......不是......很重要。

答案 3 :(得分:0)

定义最好将单独的管理部分与主站点保持一致。

第一个原因是你所说的:用户必须先发现它的位置。

您可以做的另一件事是授予您对admin文件夹的访问权限,例如使用.htaccess,只能访问某些IP地址。

答案 4 :(得分:0)

通过选择“必须由其他管理员设置”选项,您将增加安全密码的机会。更好的是,自己为管理员生成强密码,不要让他们自己选择。

正如Greg W指出的那样,默默无闻并不值得,但在已经安全的设置之上使用是很方便的。我不认为将管理区域与其他任何区域分开会使其本身具有更多或更少的安全性 - 如果您在管理区域中存在不安全的代码,则无论如何都存在风险。

对于一般安全建议,我建议Chris Shiflett的网站:http://shiflett.org/articles

强制管理员在更新任何数据之前输入密码 - 不要依赖现有的会话凭据。 PHP Session Security

答案 5 :(得分:0)

使用沙箱..创建不可见的诱饵管理区域,无论是/ admin / manage / administrator都会在很长一段时间内招待您的黑客。

另外,请尝试将实际管理文件夹保留在公用文件夹(public_html,www)之外。

这些做法对我有用。

相关问题