Los campos de entrada que no tienen el nombre="" se envían a través del navegador [cerrado]

2

¿Los campos de entrada que no tienen atributos name son susceptibles de ataques MITM (sin SSL) o cualquier otro ataque?

Por ejemplo:

<form action="" method="post">
    <label for="credit_card_number"><input id="credit_card_number" type="text" value="4111111111111111"></label>
    <button type="submit">Submit</button>
</form>

Lo que estoy haciendo es usar javascript para obtener los valores, luego publicar en stripe.js, recibir un token y luego borrar todos los valores de los campos CC antes de enviar el formulario al servidor.

Entiendo que SSL sería una buena idea, pero ¿sería necesario? Y por qué si es así.

    
pregunta Dan Cameron 20.08.2014 - 03:41
fuente

2 respuestas

1
  

Los campos de entrada que no tienen nombre="" se envían a través del navegador

No por el proceso estándar de envío de formularios HTML. Sin embargo, JavaScript en el lado del cliente puede leer el contenido de los campos y enviar los datos ellos mismos.

  

¿Los campos de entrada que no tienen atributos de nombre son susceptibles de ataques MITM (sin SSL) o cualquier otro ataque?

Sí. Todo el contenido de una página que no está protegida por SSL es susceptible de ataques MitM.

Incluso si stripe.js está leyendo el número de la tarjeta de crédito y enviándolo a los servidores de Stripe de forma segura, no hay forma de saber que el resto de su página no fue manipulado por un ataque de MitM activo en el momento de la carga. Por ejemplo, se podría haber inyectado un fragmento de JavaScript en la página que escucha las pulsaciones de teclas y envía el número de la tarjeta de crédito al atacante por separado.

Este tipo de cosas es la razón por la cual el consejo para los usuarios es verificar que SSL esté habilitado en el nivel de la página, y por qué PCI-DSS requiere que las páginas web en las que se invita al usuario a escribir una contraseña se muestren como SSL. protegido en la interfaz de usuario del navegador.

  

Entiendo que SSL sería una buena idea pero sería necesario?

Sí. En cualquier caso, Stripe lo requiere para hacer eso .

  
  • Servir su página de pago a través de SSL, es decir, la dirección web de la página debe comenzar con https, no http.
  •   
    
respondido por el bobince 20.08.2014 - 13:47
fuente
2

Sí . Cualquier solicitud HTTP que no esté protegida por SSL / TLS / HTTPS es vulnerable a los ataques MitM. Sin la integridad que proporciona HTTPS, cualquier componente del HTML servido a través de HTTP es vulnerable a un ataque o modificación por parte de un intermediario. Por ejemplo, la acción del formulario podría cambiarse, por lo que en lugar de que el formulario SE PUBLIQUE en su página deseada, podría POSTARSE en una página en un sitio malicioso (como lo designó el MitM).

La conclusión es que cualquier cosa que envíe al cliente a través de HTTP podría cambiarse antes de que llegue al cliente. Si necesita seguridad (y ciertamente lo hace para transacciones de pago), necesita HTTPS para asegurarse de que el cliente reciba lo que deseaba recibir.

    
respondido por el Xander 20.08.2014 - 05:27
fuente

Lea otras preguntas en las etiquetas