目前我正在用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。有几个教程和生成器可用。
这样当浏览到页面时,它会要求输入密码/密钥。如果输入正确,它将显示您的登录页面-否则它将显示一个禁止的错误。