2010-11-04 53 views
19

Tengo el recuadro de registro y deseo que los usuarios se registren a través de ajax. ¿Es seguro enviar una contraseña a través de jquery ajax? En caso negativo, ¿alguien puede explicar qué hacer para proteger los datos de contraseñas, por ejemplo?jQuery, ¿enviar contraseña a través de ajax?

Respuesta

7

Solo para aclarar, no hay un método 100% seguro para enviar ningún tipo de datos con Ajax, o incluso un POST normal.

Una buena práctica es usar certificados SSL/TLS. Si tiene un buen certificado SSL/TLS, nadie puede olfatear la contraseña al observar el tráfico de su red.

Lamentablemente estos servicios no son gratuitos. (*)

Si no quiere pagar por algo así y está creando un Registro/Iniciar sesión simplemente puede usar OpenAuth o OpenID y permitir que la gente se una a través de las redes sociales evitando muchos pasos de seguridad. y el lado del servidor.

*: Según lo sugerido por Ivan Venediktov, ahora puede obtener un certificado SSL gratis siguiendo este LINK.

+0

Tendré que verificar esto.Tnx – user147

+24

No creo que esto haya dicho nada acerca de la seguridad – Elaine

+1

No es útil, si tiene Firebug, su nombre de usuario y contraseña. Cualquier usuario con conocimiento de Firebug o algo puede ver su solicitud desde la consola y puede hacer un mal uso del código –

6

Si está usando HTTPS (SSL) (y haga lo que necesite para estar seguro) entonces sí, una solicitud AJAX no es más o menos segura que una devolución de datos completa al servidor.

19

Asegúrese de que lo está enviando a través de POST y use SSL en lugar de la antigua http simple y debería estar bien. Enviarlo a través de AJAX no lo hace menos seguro que una publicación normal.

Ver this answer (y otra discusión here) para una explicación más detallada, pero el jist de ello es que la petición que está haciendo, y la información que se transmite por el cable es fundamentalmente el mismo si su un AJAX solicitud o formulario enviado.

+4

Deseo agregar que toda la solicitud HTTP, ya sea POST o GET, está encriptada a través de una conexión HTTPS. Ninguno de los dos es más seguro que el otro, con la excepción principal (inaplicable aquí b/c de ajax), ya que las URL se pueden ver en el historial de la barra de direcciones de usuarios, y es posible que no desee guardar una contraseña en el historial del usuario. – EBarr

+0

Puede publicar algunos enlaces relevantes o más información sobre el mismo. –

+1

@SiddharthSharma Actualizado con algunos enlaces a otras preguntas en la red. – Radu

5

Es tan seguro/inseguro como enviar la contraseña por correo postal completo. Necesita usar una conexión encriptada para que sea segura (r). Use SSL (https: //).

+0

Upvoted para "seguro (r)" – TheCarver

3

Si quiere dar un paso más con la seguridad. Usted ni siquiera necesita para recoger la contraseña de los usuarios, puede generar un hash (con sal!) En el lado del cliente con algo como esto http://www.movable-type.co.uk/scripts/sha1.html entonces nunca ve la contraseña, solamente el hash

El único problema con esto es javascript es requerido. Sin embargo, puede hacer un repliegue fácilmente.

+0

Entonces, ¿qué pasa si un hombre en el medio fisgonea el hash? ¿Todavía no podría iniciar sesión? – Kebman

+0

sí, pero no se filtra la contraseña. Otro era enviar una sal única para cada intento de inicio de sesión, generar un hash en el cliente utilizando la contraseña + sal única. Pero entonces simplemente te estás volviendo demasiado complejo –

+0

Pero dado que también estás enviando la página web, ¿el hombre que está en el medio tampoco conocerá el método de encriptación, pudiendo así crackearlo muy fácilmente? Quiero decir, ¿no podría la sal ser interceptada fácilmente también, si él ya pudiera espiar lo que el cliente envía? – Kebman

Cuestiones relacionadas