2008-09-28 5 views
6

Это то, что мой браузер послал, при входе в какой-либо сайт:Является ли мой пароль формы передан в ясном тексте?

 
POST http://www.some.site/login.php HTTP/1.0 
User-Agent: Opera/8.26 (X2000; Linux i686; Z; en) 
Host: www.some.site 
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 
Accept-Language: en-US,en;q=0.9 
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 
Referer: http://www.some.site/ 
Proxy-Connection: close 
Content-Length: 123 
Content-Type: application/x-www-form-urlencoded 

lots_of_stuff=here&e2ad811=my_login_name&e327696=my_password&lots_of_stuff=here 

Могу ли я утверждать, что любой человек может нюхать мое имя пользователя и пароль для этого сайта? Возможно, только в моей локальной сети?
Если это так (даже по локальной сети), то я в шоке. Я думал, что с помощью

<input type="password">

сделал нечто большее, чем сделать все персонажи выглядят как '*'

P.S. Если это важно, я играл с Netcat (на Linux) и сделал соединение
браузер < => NetCat (loged здесь) < => прокси < => remote_site

ответ

15

Все данные, отправленные с помощью http-соединения, могут быть замечены кем-то на вашем маршруте на сервер (человек в средней атаке).

type = "password" только скрывает символ на экране, и даже другие программы на вашем компьютере могут считывать данные.

Единственный способ защитить данные, чтобы отправить его trought SSL (HTTPS вместо HTTP)

0

Да, ваши учетные данные передаются в открытом виде, кто может услышать ваш сетевой трафик может обнюхать их.

4

type = "password" только скрывает символ на экране. Если вы хотите прекратить обнюхивание, вам необходимо зашифровать соединение (т. Е. HTTPS).

0

Содержания тела POST видим, то есть, «в открытом виде,» если перевозится на незашифрованном канал. Если вы хотите защитить тело HTTP от обнюхивания, вы должны сделать это через защищенный канал, через HTTPS.

2

Вы можете либо зашифровать HTTP-соединение через HTTPS, либо использовать MD5 и другие алгоритмы хэширования, реализованные в JavaScript, которые могут использоваться на стороне клиента для хэша на стороне клиента паролей перед отправкой, следовательно, чтобы сниффер мог читать ваши пароль.

+3

Второй вариант - хеширование: Если сниффер получает хэш моего пароля, то ему не нужен мой пароль. Он может просто отправить POST с хэшем моего пароля. Или я чего-то не хватает? – user15453 2008-09-30 20:24:48

 Смежные вопросы

  • Нет связанных вопросов^_^