javascript - 使用 JavaScript 使用随机盐散列密码并从 C# 验证
问题描述
我想让 asp.net web 应用程序的密码维护过程变得强大。请验证我的想法是否可行。如果是,那么请建议示例代码或链接来实现。否则建议我如何安全地将密码从浏览器发送到服务器并存储在哈希中。
注意:为了安全起见,我已经在使用 TLS (SSL)。
脚步:
- 注册用户时,在客户端浏览器中使用 JavaScript 中的随机盐对用户密码进行哈希处理。
- 提交表格。
- 服务器端代码将哈希存储在数据库中。
- 当用户尝试登录时,在客户端浏览器中使用来自 JavaScript 的随机盐对用户密码进行哈希处理。
- 提交表格。
- 使用登录密码哈希验证数据库存储的哈希。(我认为由于随机盐,两个哈希会有所不同,但验证功能将能够比较它)
解决方案
这是不安全的。散列和加盐应该是服务器提供的隐藏实现秘密,而不是客户端。由于客户端拥有实现机密,因此如果有人可以访问您的数据库,他们可以对您的安全模型进行逆向工程。
HTTPS 将保护传输中的密码。我也会避免滚动您自己的身份验证系统,因为有很多“陷阱”。ASP.NET Framework 和 Core 都为身份验证提供了强大的模式和实现。
推荐阅读
- swift - 带有部分边框的 UIView 边框
- javascript - 如果某些状态代码,导航后剧作家重新加载页面
- spring-boot - 我如何记录http请求的主机头(Spring Boot)
- latex - 通过 CLI 的 libreoffice writers2latex 选项
- c++ - 如何使用 OpenSSL 而不是 BoringSSL 构建 gRPC++
- asp.net-core - 无法通过 IIS 为网站提供主机名
- javascript - 使用将函数作为模式的 redux-saga-test-plan 进行断言会给出“效果不匹配”错误
- c++ - “cin”怎么会弄乱一个循环?
- java - TextView 中的可点击字符串到 EditText insinde Adapter.class
- javascript - JavaScript 确认取消按钮仍在发布