【发布时间】:2014-04-23 11:53:56
【问题描述】:
谁能告诉我 SilverStripe 是否有一个可以启用的配置选项,以强制管理员用户在尝试更改密码时必须确认当前密码?
我刚刚收到一个客户项目的安全扫描结果,其中一个标记为中等风险的安全问题(将在 60 天内修复)如下:
说明
观察:
管理员用户在更改密码时无需输入当前密码。
受影响的 URL 示例: http://yourdomain.com/admin/myprofile
** 截图:** http://www.silverstripe.org/assets/Uploads/admin-myprofile.jpg
影响: 恶意用户通过使用会话劫持,中间人攻击, 跨站点请求伪造攻击或发现无人参与的登录会话可能 在不知道当前密码的情况下更改帐户密码。此外,当用户 无法更改用户名或密码,无法主动防范 用户凭据被泄露。
建议: 允许用户更改其用户名和密码是最佳实践。此外,它 应要求用户提供他当前的密码,同时提供 重新验证用户身份的新密码。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
好问题。我找不到任何现有的解决方案。我想我们需要扩展
ConfirmedPasswordField。 -
嗯,我个人会让管理部分强制使用 https 进行流量。如果密码只是在登录时通过 http 发布,那么对于攻击者来说,使用它而不是公然更改密码是合乎逻辑的,这会给用户一种他们的登录详细信息被泄露的粘合剂。 Silverstripe 非常注意防止 XSS 攻击,因此使用 https 可以很好地覆盖基础。我想我也想听听核心团队对此进行处理 :)
-
对管理员强制执行 HTTPS 可以通过 .htaccess / nginx 配置强制执行。关于密码确认,您可能想在开发邮件列表中询问以将其放入核心,这可能是一个好主意:groups.google.com/forum/#!forum/silverstripe-dev
标签: silverstripe