【发布时间】:2011-01-22 19:02:50
【问题描述】:
这是编程和系统管理员的混合体,但我认为这更像是一个编程问题。
目前正在构建用于管理 Oracle 用户帐户 (C#) 的密码管理 Web 应用程序。
范围要求在允许用户设置新密码之前验证用户 Oracle 用户名和密码。如果不创建用户密码表(散列或其他方式,这是一个安全风险),我如何验证旧用户密码?
我当前的解决方案是尝试使用用户指定的用户名/密码连接到数据库。在这方面的太多尝试会将用户锁定在 Oracle 端,因此暴力破解不太可能。这里是否还有其他我遗漏的安全风险,或者是否有更好的方法来处理这个问题?
我们使用 AD 作为主要身份验证,但 AD 帐户未绑定到 Oracle 帐户,因此这只是初步检查。
应用流程(如果有帮助):
- AD 检查正确的域(Intranet)
- 用户输入 Oracle 用户名/密码
- 输入旧密码、新密码+确认
- 如果密码正确,请重置密码
【问题讨论】:
-
您能否解释一下为什么应用程序不能直接从用户输入中获取密码,以该用户身份连接,并在以用户身份连接后更改密码?
-
这实际上是我的问题。通过获取用户输入并以该用户身份连接来检查用户身份验证是否有效,或者这是否存在安全风险?如果它是有效的,我到目前为止已经完成了这项工作,并且找不到任何明显的问题。
标签: asp.net oracle passwords forgot-password