在JavaScript和WebServer之间共享加密数据

时间:2014-02-17 18:36:32

标签: ruby-on-rails angularjs security authentication

  1. 我有一个基于REST API的Rails WebServer
  2. 我有一个AngularJS应用程序,它连接到此WebServer
  3. 在客户端加密登录名和密码并在服务器端解密这些凭据的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

如果您使用的是RSA,则必须在浏览器中输入密钥。密钥无法访问浏览器,除非它们通过不安全的HTTP连接。如果攻击者通过嗅探HTTP连接以及javascript代码中的算法来获取密钥,那么您无法保护任何内容,因为解密您的流量变得微不足道。

我建议在您的网络服务器前放置一个nginx代理。您可以配置nginx进行TLS握手,并且您可以获得每年不到15美元的Comodo SSL证书。我自己在Python服务器面前做到了这一点,真的,这都是成本。

答案 1 :(得分:1)

当我在服务器端存储公共服务器密钥和服务器端的私有服务器密钥时,我刚刚决定使用http://travistidwell.com/jsencrypt/index.html

JS客户端会加密发送到服务器的所有邮件。

答案 2 :(得分:0)

正如Geoff Genz所提到的,最好的方法是使用HTTPS保护您的Web服务器,并确保您的登录操作仅通过HTTPS接受请求。配置您的角度应用程序以向您的登录操作的HTTPS URL发出请求,并且将无缝地处理所有加密。您不必担心手动加密数据客户端然后解密服务器端。所有这些都将由TLS协议处理,使HTTPS工作。