我正在使用 ASP.NET,我使用自己编写的自定义身份验证提供程序,散列和加盐已到位,因此它应该相对安全。
我还实现了一个像这样工作的自定义身份验证会话机制。
- 用户登录到 Web 应用程序,根据 mssql db 中的数据验证密码。
- 将新行插入到“会话”表中,其中包含对登录用户的引用、身份验证令牌和到期日期。
- 身份验证令牌与 cookie 一起返回,并存储在客户端的计算机上。
- 身份验证令牌用于识别用户。
它工作得很好,但我不确定这是正确的方法,因为我可以看到潜在的安全风险,例如,如果有人侵入数据库并更改用户 ID,或者获取身份验证令牌,或者我错了吗?
PS 不幸的是,我不能使用内置的身份验证/会话处理,因为我们的客户要求这样做,而且我们必须支持其他数据库引擎,例如 mysql、oracle/etc,所以请不要建议 :)