如何在使用ajax和JQuery时加密发布数据?

时间:2009-04-17 12:48:34

标签: jquery asp.net-mvc

服务器端我们可以对用户进行身份验证,但是当ajax或JQuery发送数据时我想要数据的安全性。就像在客户端一样,有人只能以加密格式查看任何呼叫的参数。 那我该怎么做呢我在这个网站上看到了这种情况。

修改

我们可以忽略在来自表单服务器时加密数据。 但至少在发送时间是必需的。 在偏好设置中查看此网站上的示例,设置通知复选框。 可以通过在Mozilla firefox中使用firebug附加组件来查看请求。

3 个答案:

答案 0 :(得分:6)

你不能。

如果浏览器(即JavaScript)应该读取/使用值,则它们必须是明文。由于JavaScript本身必须能够解密/解密数据,因此您可能提出的任何加密/加扰方案都将被固有地破坏,因此具有中等智慧的任何人都可以访问源代码将能够找到它。

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

答案 1 :(得分:3)

您可以使用某些库加密数据,例如http://home.versatel.nl/MAvanEverdingen/Code/,但如上所述,可以由使用调试器查看密钥的人进行逆向工程。

为了安全地执行此操作,您需要拥有服务器的公钥,并使用它来从服务器获取对称密钥,该密钥使用私钥加密密钥。

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

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

如果数据足够小,那么您可以使用公钥来加密数据,但是根据公钥的大小存在大小限制。

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

答案 2 :(得分:2)

如果您的问题只是加密用户发送的数据,请在服务器上使用SSL,以便加密与它的连接。您的AJAX网址为https://myserver.com/Ajax/Endpoint或其他任何内容。