使用javascript发送数据,我该如何“保护”或“加密”它?

时间:2011-03-01 23:49:58

标签: javascript json

我被迫通过GET(查询字符串)将数据发送到另一台服务器。

For example: http://myserver.com/blah?data=%7B%22date%22%3A%222011-03-01T23%3A46%3A43.707Z%22%2C%22str%22%3A%22test%20string%22%2C%22arr%22%3A%5B%22a%22%2C%22b%22%2C%22c%22%5D%7D 

这是一个JSON编码的字符串。然而,任何半脑的人都可以看到并解码它以获得基础数据。

  1. 我知道查询字符串的长度有限
  2. 我无法选择使用GET与PUT / POST
  3. 我有没有办法在一个可以从服务器解密的更短的字符串中编码大量数据? (使用javascript)

    我认为HTTPS实际上并没有解决这个问题,因为数据在uri中?

3 个答案:

答案 0 :(得分:3)

HTTPS解析它 - 即使HTTP标头中的数据(包括URI)也受到保护,因为整个连接都是通过SSL通道进行的。

有一个例外:如果客户端使用代理,主机名将被公开,因为它在CONNECT请求中以明文形式传输。

答案 1 :(得分:2)

鉴于你的约束,我看到的唯一选择是使用public key / private key pair,就像PGP一样,其中公钥用于加密数据(然后你通过GET发送)和私钥用来解密它。那时你可能已经放弃了JSON(尽管你当然可以将数据设置为JSON,然后加密它,并将结果作为Base64编码的字符串或其他东西发送)。请注意,这并不能保护您免受虚假消息的影响(因为公钥是公共的),但它确实意味着人们在没有私钥的情况下无法读取传输中的数据。

答案 2 :(得分:0)