Насколько безопасен HTTP GET, когда данные закодированы в URL? - PullRequest
5 голосов
/ 17 июня 2009

Если данные имеют кодировку Url, достаточно ли это безопасно для отправки учетных данных для входа через HTTP GET?

Ответы [ 6 ]

20 голосов
/ 17 июня 2009

Совсем нет. Кодированный URL легко обратим. Вы должны зашифровать транспортный уровень (т.е. использовать HTTPS)

8 голосов
/ 17 июня 2009

Нет - URL-кодировка предназначена для того, чтобы все символы, которые вы пытаетесь отправить с помощью запроса GET, могли на самом деле попасть на другой конец.

Он на самом деле предназначен для легкого кодирования и декодирования для подготовки данных к передаче, а не для обеспечения безопасности.

5 голосов
/ 17 июня 2009

Кодировка URL не является каким-либо видом шифрования, она просто подготавливает строку для отправки по сети.

Если ваши данные конфиденциальны, GET должен быть полностью исключен. Причины для этого?

  1. Очевидный, каждый, кто заглянет в строку URL, увидит данные
  2. Данные будут сохраняться в каждом журнале прокси, который он проходит через
  3. Если пользователь покидает сайт, следующий сайт будет иметь URL, записанный в его журналах / веб-статистике (REFERER).
1 голос
/ 17 июня 2009

Пожалуйста, прочитайте цель кодирования URL

Спецификация для URL (RFC 1738, Dec. '94) создает проблему, поскольку ограничивает использование разрешенных символов в URL только ограниченным подмножеством набора символов US-ASCII.

HTML, с другой стороны, разрешает использовать в документах весь диапазон набора символов ISO-8859-1 (ISO-Latin), а HTML4 расширяет допустимый диапазон, включая также весь набор символов Unicode. , В случае символов, отличных от ISO-8859-1 (символы выше десятичного FF / 255 в наборе Unicode), они просто не могут использоваться в URL-адресах, поскольку не существует безопасного способа указать информацию набора символов в содержимом URL-адреса. пока [RFC2396.]

URL-адреса должны быть закодированы повсеместно в документе HTML, на который ссылается URL-адрес для импорта объекта (A, APPLET, AREA, BASE, BGSOUND, BODY, EMBED, FORM, FRAME, IFRAME, ILAYER, IMG, ISINDEX, INPUT, Элементы LAYER, LINK, OBJECT, SCRIPT, SOUND, TABLE, TD, TH и TR.)

Безопасность здесь не главное. Как уже отмечалось, HTTPS следует использовать, когда это требуется.

0 голосов
/ 17 июня 2009

Не совсем безопасно.

0 голосов
/ 17 июня 2009

URLEncoding для кодирования / передачи, а не безопасности.

...