2008-09-28 16 views
6

Esto es lo que mi navegador ha enviado, al iniciar sesión en algún sitio:¿Se está transfiriendo la contraseña de mi formulario en texto sin cifrar?

 
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 

¿Puedo decir que cualquiera puede oler mi nombre de usuario y contraseña para ese sitio? ¿Tal vez solo en mi LAN?
Si es así (incluso solo en LAN) entonces estoy sorprendido. Pensé usando

<input type="password">

hizo algo más que compensar todos los caracteres se ven como '*'

P. S. Si importa jugaba con netcat (en Linux) e hice la conexión
navegador < => netcat (Usuario aquí) < => Proxy < => remote_site

Respuesta

15

Todos los datos enviados a través de una conexión http pueden ser vistos por alguien en su ruta al servidor (hombre en el ataque medio).

type = "contraseña" solo oculta el personaje en la pantalla, e incluso otros programas en su computadora pueden leer los datos.

La única manera de proteger los datos es enviarlo SSL trought (HTTPS en lugar de HTTP)

0

Sí, sus credenciales se pasan en texto plano, cualquiera que pueda escuchar su tráfico de red puede olerlos.

4

type = "contraseña" solo oculta el carácter en la pantalla. Si desea dejar de oler, debe encriptar la conexión (es decir, HTTPS).

0

contenido de un cuerpo de POST son visibles, es decir, "en claro", si se transportan de forma no cifrada canal. Si desea proteger el cuerpo HTTP de ser olfateado, debe hacerlo a través de un canal seguro, a través del HTTPS.

2

Puede encriptar la conexión HTTP a través de HTTPS, o hay MD5 y otros algoritmos hash implementados en JavaScript que se pueden utilizar desde el lado del cliente para controlar la contraseña del cliente antes de enviarla, deteniendo así la capacidad de un rastreador contraseña.

+3

En la segunda opción - hash: Si el sniffer obtiene el hash de mi contraseña, entonces no necesita mi contraseña. Él puede simplemente enviar POST con el hash de mi contraseña. ¿O me estoy perdiendo algo aquí? – user15453

+1

Es cierto, pero también hay formas de evitar esto (hashing algunos datos aleatorios antes de la contraseña y publicarlos también), pero incluso este esquema básico impide el uso de su contraseña en cualquier otro lugar, lo que ya es un gran impulso dado que la mayoría de los usuarios reutilizan el mismo pasword una y otra vez –

Cuestiones relacionadas