阻止用户访问管理员登录页面


Preventing users from getting access to an admin login page

目前我正在用PHP设置一个admin登录页面,这就是我如何设置它的。

如果用户导航到website.com/admin,则返回404错误。访问管理员登录的唯一方法是访问website.com/admin?key=random-string。如果URL中的键与数据库中的键不匹配,它将返回404错误。当键匹配时,它将显示admin登录。

我认为这是聪明的,以帮助防止有人获得访问管理登录屏幕,但我没有足够的经验,知道如果这是真的。

我认为这是聪明的,可以帮助防止别人访问到管理员登录屏幕,但我没有足够的经验,知道如果这是真的。

不要试图通过智取来击败攻击者。总是假设攻击者比你聪明,并在这个模型上构建你的安全性。

让你的登录和会话管理系统是可证明的安全。例如:

  • 采用双因素认证
  • 使用HTTPS以及安全cookie和HSTS。
  • 多次登录失败后限制或锁定帐户。
  • 确保您不容易受到会话固定。
  • 确保你不容易被用户枚举。

查看会话管理备忘单以获取更多指针。

同样,不要在URL本身中使用secret。即使这些是受保护的,如果使用HTTPS,他们被记录在浏览器和代理历史,默认情况下由服务器日志,并可以在referer头泄漏。

对于额外的安全层,您最好对/admin目录使用htaccess和htpassword。有几个教程和生成器可用。

这样当浏览到页面时,它会要求输入密码/密钥。如果输入正确,它将显示您的登录页面-否则它将显示一个禁止的错误。