2010-11-15 10 views
5

Consideremos el siguiente escenario: supongamos que tengo una aplicación web, y la autenticación de usuarios se realiza a través de un cuadro de diálogo modal (digamos que cuando un usuario hace clic en el botón de inicio de sesión se envía una solicitud ajax y dependiendo de la devolución de llamada cierro ventana o muestra un error), y uso solo protocolo HTTP. ¿Por qué se considera que no es una forma segura de hacer las cosas?¿Por qué la autenticación AJAX a través de HTTP no es segura?

Además, asegúrese de tener en cuenta una ventana de diálogo modal, porque esta es información vital. Puede haber algunos datos que se muestran debajo de la ventana de diálogo y pueden ser accesibles si la modalidad está rota.

La pregunta incluye:

  1. Cómo se puede romper una aplicación de seguridad mediante la utilización de llamada AJAX?
  2. ¿El HTTP Ajax es menos seguro que un formulario HTTP regular?
+1

¿Quién consideró que esto no es seguro? o ¿Quién lo consideró ** menos seguro ** que los formularios regulares? – zerkms

+0

Esto es realmente una pregunta de por qué, no quién. Si se compara con HTTPS, no hay dudas de que es inseguro. Lo que quiero saber es por qué. –

+0

¿Puedes aclarar la pregunta? ¿Estás preguntando si Ajax HTTP es menos seguro que Ajax HTTPS? o ¿Estás preguntando si el HTTP de Ajax es menos seguro que un HTTP de forma regular? – UpTheCreek

Respuesta

10

Quien le haya dicho, está equivocado. La publicación a través de Ajax no es menos segura que la publicación con formularios regulares. Sólo porque es lo mismo.

Actualización 1 acuerdo con la última edición:

  1. no se puede
  2. Sin

Argumento: la solicitud de AJAX es la misma petición HTTP como cualquier otra (por ejemplo, solicitud enviada por formulario html). Absolutamente el mismo. Entonces, por definición, no puede ser menos o más seguro.

No sé cómo explicar más y qué decir más: ajax es una solicitud http. la misma solicitud que su navegador cuando abre la página SO o cuando publica el formulario de pregunta SO.

Puedo reformular su pregunta a algo así como "Por qué A es menos seguro que A". Responda a esto: A no es menos seguro que A, porque A es A: -S

+0

¿Puede por favor publicar algunos argumentos además de sus respuestas? –

+1

@ den-javamaniac: lo intenté ;-) – zerkms

+0

@zerkms: Lo hizo, gracias por eso, ya que puedo ver su punto claramente. Pero la idea que no entiendo es la siguiente: mientras que en la autenticación de forma simple al presionar el botón de inicio de sesión se envía la solicitud y eso es todo, si se usa la ventana de diálogo, hay una cadena de llamadas js (aunque no soy un experto en js) , lo cual, si podemos decir que algún tipo de js está adjunto a la parte inferior de la página, puede simplemente cambiarse y dar como resultado cualquier cosa que js le permita hacer. Si puedo lograr eso, puedo enviar fácilmente dos solicitudes: 1 para iniciar sesión y otra para obtener credenciales para alguien. ¿Qué más que (si es posible)? –

1

HTTP no es seguro para datos privados porque los datos se transmiten en texto plano. Esto puede ser interceptado en cualquier lugar entre el cliente y el servidor (por ejemplo, wifi). Ajax sobre HTTPS sería mucho mejor.

+0

¿Pero no se está preguntando por qué ajax lo haría menos seguro? – UpTheCreek

2

datos sensibles deben ser canalizados a través de HTTPS. Los datos GET se envían en la cadena de consulta. Los datos POST se envían en el encabezado Solicitud HTTP. Ajax puede hacer ambas cosas. AMBOS no son seguros. Necesita un cifrado de nivel de canal para realmente protegerlo.

0

Como los navegadores usan la misma pila de red para HTTP y HTTPS, ya sea AJAX o no, no hay diferencia. Todos los encabezados, cookies, autenticación, etc. funcionan exactamente igual.

1

Creo que el problema es que está utilizando http. No importa cómo lo mires, no será seguro. Si usa https, la solicitud de ajax será tan segura como un formulario html.

La respuesta Somy sería usar https y ya estará todo listo.

Cuestiones relacionadas