Отправка данных с помощью JavaScript, как мне «защитить» или «зашифровать» его? - PullRequest
4 голосов
/ 02 марта 2011

Я вынужден отправлять данные через 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 vs PUT / POST

Можно ли мне закодировать много данных в гораздо более короткую строку, которую можно расшифровать с сервера? (используя JavaScript)

Полагаю, HTTPS на самом деле не решает эту проблему, поскольку данные находятся в URI?

Ответы [ 3 ]

3 голосов
/ 02 марта 2011

HTTPS разрешает его - даже данные в заголовке HTTP (включая URI) защищены, поскольку все соединение происходит по каналу SSL.

Существует одно исключение: имя хоста будет открытоесли клиент использует прокси, так как он передается в открытом виде в запросе CONNECT.

2 голосов
/ 02 марта 2011

Учитывая ваши ограничения, я вижу только один вариант - использовать пару открытый ключ / закрытый ключ , как это делает PGP, где открытый ключ используется для шифрования данных (которые вы затем отправляете через GET), и закрытый ключ используется для его расшифровки. В этот момент вы, вероятно, оставили бы JSON позади (хотя вы, безусловно, могли бы настроить данные как JSON, затем зашифровать их и отправить результат в виде строки в кодировке Base64 или чего-то еще). Обратите внимание, что это не защищает вас от ложных сообщений (поскольку открытый ключ, в общем-то, публичный), но это означает, что люди не могут читать данные в пути без закрытого ключа.

0 голосов
/ 02 марта 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...