security - 保护网站管理部分的最佳做法是什么?

标签 security authentication

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。

10年前关闭。




Improve this question




我想知道人们认为保护网站管理部分的最佳做法,特别是从身份验证/访问的角度来看。

当然,有一些显而易见的事情,例如使用 SSL 和记录所有访问,但我想知道在这些基本步骤之上人们认为应该设置什么标准。

例如:

  • 您是否只是依赖与普通用户相同的身份验证机制?如果不是,那是什么?
  • 您是否在同一个“应用程序域”中运行管理部分?
  • 您采取了哪些步骤来使管理部分不被发现? (或者你拒绝整个“默默无闻”的事情)


  • 到目前为止,回答者的建议包括:
  • 在每个管理员密码检查中引入人工服务器端暂停,以防止暴力攻击 [开发人员艺术]
  • 使用相同的 DB 表为用户和管理员使用单独的登录页面(以停止 XSRF 和 session 窃取授予对管理区域的访问权限)[Thief Master]
  • 还可以考虑将网络服务器 native 身份验证添加到管理区域(例如,通过 .htaccess)[Thief Master]
  • 考虑在多次失败的管理员登录尝试后阻止用户 IP [盗贼大师]
  • 管理员登录尝试失败后添加验证码 [Thief Master]
  • 为用户和管理员提供同样强大的机制(使用上述技术)(例如,不要特别对待管理员)[Lo'oris]
  • 考虑二级身份验证(例如客户端证书、智能卡、卡空间等)[JoeGeeky]
  • 仅允许来自受信任的 IP/域的访问,如果可能,将检查添加到基本 HTTP 管道(通过例如 HttpModules)。 [乔极客]
  • [ASP.NET] 锁定 IPrincipal 和 Principal(使它们不可变且不可枚举) [JoeGeeky]
  • 联邦权限提升 - 例如当任何管理员的权限升级时,向其他管理员发送电子邮件。
    [乔极客]
  • 考虑管理员的细粒度权限 - 例如而不是基于角色的权限,为每个管理员定义个人操作的权限 [JoeGeeky]
  • 限制管理员的创建 - 例如管理员不能更改或创建其他管理员帐户。为此,请使用锁定的“ super 管理员”客户端。 [乔极客]
  • 考虑客户端 SSL 证书或 RSA 类型 key 卡(电子 token )[Daniel Papasian]
  • 如果使用 cookie 进行身份验证,请为管理页面和普通页面使用单独的 cookie,例如将管理部分放在不同的域上。 [丹尼尔·帕帕西恩]
  • 如果可行,请考虑将管理站点保留在私有(private)子网上,远离公共(public) Internet。 [约翰哈索克]
  • 在网站的管理员/正常使用上下文之间移动时重新签发身份验证/ session 票 [Richard JP Le Guen]
  • 最佳答案

    如果网站需要登录以进行常规事件和管理员,例如一个论坛,我会使用使用相同用户数据库的单独登录名。这确保了 XSRF 和 session 窃取不会允许攻击者访问管理区域。

    此外,如果 admin 部分位于单独的子目录中,则使用 Web 服务器的身份验证(例如 Apache 中的 .htaccess)保护该部分可能是一个好主意 - 那么有人需要该密码和用户密码。

    隐藏管理路径几乎不会带来任何安全 yield - 如果有人知道有效的登录数据,他很可能还能够找到管理工具的路径,因为他要么通过网络钓鱼或键盘登录,要么通过社会工程获得它(这可能会揭示路径,也是)。

    暴力保护,例如在 3 次登录失败后阻止用户的 IP 或在登录失败后要求验证码(不适用于第一次登录,因为这对合法用户来说非常烦人)也可能有用。

    关于security - 保护网站管理部分的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2848134/

    相关文章:

    javascript - Node Js基于javascript,用户是否有可能破解代码

    security - Websphere MQ主题和SSL

    security - 防止 SVG 被轻易逆向工程

    python - 我只需要 "identity url"吗? - OpenID

    Laravel - 如何根据 LARAVEL 中的 IP 地址限制对管理员登录页面的访问?

    javascript - 延迟显示电子邮件地址是否有助于防范电子邮件抓取工具?

    security - 为什么 Apache Tomcat 将编码的斜线 (%2F) 处理为路径分隔符?

    authentication - 如何在不使用桌面应用程序上的重定向 uri 的情况下使用 OAuth 2.0 在 SoundCloud 上进行身份验证?

    c++ - 如何判断登录的windows账号是否已经在域上认证

    authentication - "Error unprotecting the session cookie"异常