代码之家  ›  专栏  ›  技术社区  ›  Vikas

如何在使用Ajax和jQuery时加密Post数据?

  •  3
  • Vikas  · 技术社区  · 16 年前

    服务器端我们可以对用户进行身份验证,但我希望在Ajax或jQuery发送数据时数据的安全性。就像在客户端一样,有人只能看到加密格式的任何调用的参数。 我该怎么做呢?我在这个网站上看到过这个场景。

    编辑

    当数据来自于服务器时,我们可以忽略加密数据。 但至少在发送时间是必需的。 在您的 偏爱 设置通知的复选框。 您可以使用Mozilla Firefox中的Firebug插件来查看请求。

    3 回复  |  直到 13 年前
        1
  •  6
  •   Tomalak    16 年前

    你不能。

    如果浏览器(即javascript)应该读取/使用这些值,那么它们必须是清晰的文本。你可能提出的任何加密/加扰方案都会被破坏,因为javascript本身必须能够解密/解译数据,因此任何一个拥有中等智能的人都可以访问源代码,从而能够解决这个问题。

    您可以执行SSL请求来加密服务器连接,从而从第三方隐藏数据。

        2
  •  3
  •   James Black    16 年前

    您可以使用一些库来加密数据,例如 http://home.versatel.nl/MAvanEverdingen/Code/ 但正如上面提到的,它可以由使用调试器查看密钥的人进行反向工程。

    为了安全地做到这一点,您需要有一个服务器的公钥,它将使用这个密钥从服务器获取对称密钥,该服务器使用它的私钥加密密钥。

    然后,javascript用公钥解密对称密钥。

    现在,这个对称密钥用于加密数据。

    如果数据足够小,则可以使用公钥加密数据,但有基于公钥大小的大小限制。

    所以,是的,你可以做到,但它可以被逆向工程。

        3
  •  2
  •   swilliams    16 年前

    如果您的问题只是对用户发送的数据进行加密,请在服务器上使用SSL,以便对其连接进行加密。您的Ajax URL将是 https://myserver.com/Ajax/Endpoint 或者什么。