【问题标题】:What is the most secure way to setup an admin area in PHP?在 PHP 中设置管理区域最安全的方法是什么?
【发布时间】:2010-10-01 13:49:05
【问题描述】:

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

  • 创建管理区域作为主站点的一部分,要求他们首先使用其电子邮件地址作为用户名进行注册,然后将其设置为管理员级别。
  • 创建一个与网站完全分开的管理区域,用户不必在其中注册,而是由其他管理员设置。

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

但是,强制他们使用主站点上的电子邮件地址进行注册会将他们的帐户绑定到我认为有助于安全的电子邮件地址?但是将管理区域放在主站点上更容易破解,因为用户需要做的就是在系统中找到一个错误,对吗?

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

【问题讨论】:

    标签: php security


    【解决方案1】:

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

    这就是您所说的“通过默默无闻的安全”。一般来说,它只会阻止不那么顽固的黑客。对于任何有意入侵您的网站的人来说,这只会让他们的成功暂时延迟。

    不过,当放置在本来就很安全的系统之上时,默默无闻仍然很有用。使用它来防止普通最终用户看到他们不一定想要或不需要看到的东西。

    【讨论】:

      【解决方案2】:

      您还可以强制他们使用单独的管理网站,其中包含主网站上现有的电子邮件地址。事实上,两者都做;在他们的主帐户上添加一个标志,上面写着“好的,这个是管理员”。这样,您可以在指向管理站点的主站点上显示一个 iframe,并且任何连接到管理站点的人都必须设置此标志

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

      【讨论】:

        【解决方案3】:

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

        登录后,管理员是否在网站设计中做一些事情,或者他们是否在一些完全不同的“设计”中(如大多数 CMS 的后端)。如果他们保持相同的设计(并且网站可以注册用户),那么只在主网站上创建管理员级别的帐户是有意义的。

        如果没有可供用户注册的选项,请使用/admin/ 之类的后端,然后收工。

        此外,“可破解”取决于数百万个因素,恕我直言,管理员的登录位置不是……嗯……重要的因素之一。

        【讨论】:

          【解决方案4】:

          当然,最好将管理部分与主站点分开。

          第一个原因就是你所说的:用户必须首先发现它在哪里。

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

          【讨论】:

            【解决方案5】:

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

            正如 Greg W 所指出的,默默无闻并不值得,但在已经安全的设置上使用起来很方便。我不认为将管理区域与其他任何东西分开不会使其本身或多或少安全 - 如果您在管理区域中有不安全的代码,那么无论哪种方式都有风险。

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

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

            【讨论】:

              【解决方案6】:

              使用沙盒..创建不可见的诱饵管理区域,像 /admin /manage /administrator 这样无处可去,会让您的黑客长时间娱乐。

              另外,请尝试将真正的管理文件夹保留在公用文件夹(public_html、www)之外。

              这些做法对我有用。

              【讨论】:

                猜你喜欢
                • 2015-12-29
                • 2011-05-16
                • 2010-10-11
                • 1970-01-01
                • 1970-01-01
                • 2011-08-02
                • 1970-01-01
                • 1970-01-01
                • 2015-11-05
                相关资源
                最近更新 更多