我正在努力让我的 REST API 更加安全。目前,我正在使用 CryptoJs.SHA256 在我的 Angular 应用程序中对密码进行哈希处理,然后将其发送到我的 C# 后端。但我意识到最好在服务器端对密码进行哈希处理。那么如何发送只有服务器可读的密码呢?我将添加 SSL,但我知道 HTTPS 也容易被破坏。还有其他解决办法吗?
谢谢
最佳答案
如布鲁斯·施奈尔 says ,“任何人都可以设计出他自己无法破解的密码。这就是为什么你应该一致不信任业余密码学,以及为什么你应该只使用经受住广泛密码分析的已发布算法。”
虽然没有什么是 100% 牢不可破的,但破坏 HTTPS 比破坏 JavaScript 自制的安全方案要困难得多。考虑一下:如果您通过不受信任的(HTTP 或 HTTPS-with-invalid-certificate)连接提供 super 安全的 JS,那么什么可以阻止攻击者替换损坏的版本,从而绕过所有 JS 安全性?没什么。
现代浏览器竭尽全力防止 HTTPS 被破坏(使用 HSTS 等);因此,依赖 HTTPS(正确使用时可以提供实际的安全性——“忽略所有那些大的红色错误”是破坏它的一种简单方法)比依赖 JS-over-HTTP 安全得多(这仅提供了一种安全感,而没有真正的安全机会)。
关于javascript - 如何从客户端安全地发送密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34000297/