Por ejemplo, supongamos que ya escribí el nombre de usuario y la contraseña en esta página de Facebook:
Pero en forma incorrecta, hice clic en "Crear nueva cuenta" en lugar de Iniciar sesión. Mi pregunta es, ¿aumenta el riesgo de seguridad?
Admito que esta pregunta parecía tener una respuesta directa al principio, pero luego de mirar la página de Facebook y la funcionalidad del botón definitivamente hace la pregunta.
Descubrí que si tiene los campos de nombre de usuario / contraseña rellenados con las credenciales de una cuenta legítima, o si tiene el nombre de usuario / contraseña rellenados automáticamente, ya sea desde Chrome o desde un administrador de contraseñas, lo cual podría una buena práctica en función de su nivel de paranoia de seguridad: luego, al seleccionar el botón "Crear nueva cuenta" se envía un mensaje POST que incluye detalles de su información de inicio de sesión de la página anterior, incluido el nombre de usuario / contraseña. Si tiene curiosidad y aún no lo sabe, esto se puede hacer simplemente monitoreando las solicitudes de red en su navegador.
A pesar de esto, aún diría que depende de la aplicación con la que estés interactuando. En este caso, ya que es Facebook y, aunque esto puede ser un punto de contención dentro de la comunidad, podemos confiarle nuestros datos a Facebook, siempre y cuando la solicitud POST que tenía mi nombre de usuario / contraseña en su carga útil se hiciera segura. Puedo suponer que la transmisión no está preocupada por un riesgo de seguridad. Solo me imagino que en este punto, la información que se envía a Facebook a través de esta solicitud POST debería ser tan segura como el botón de inicio de sesión.
Nunca me he encontrado con otro sitio que haga esto, pero espero ver otras respuestas basadas en otras experiencias.
La acción que está realizando no es más peligrosa que hacer clic en el botón de inicio de sesión.
Los datos solo se almacenarán en el lado del cliente ya que no está realizando una solicitud POST HTTP para ese formulario.
Editar:
El cuerpo de Mi solicitud al hacer clic en registrarse con nombre de usuario y contraseña como "falso"
__a=1&__be=-1&__dyn=5V8WXBzamaUCUx2u6Xolg9odpbGEW8yExLFwgoqwWhE98nwgUaqwHx24UJi28rxuF98ScDKuEjKewExaag4idxK4ohyVeE8UnyogKcx2785aayoe8hxG1awxwxgeEtwqUbQ3a1NDx6WK6pE9GBy8pxO12wRyUa8nyESbwgUgUKezUny9EbE9E-dgoV8O2V7yolwPzpp8GcxmUpzUryEqz85CGDwHx-5UO5bAyEa8aoCubK&__pc=PHASED:DEFAULT&__req=11&__rev=4123490&__user=0&action_dialog_shown=&asked_to_login=0&birthday_day=20&birthday_month=7&birthday_year=1993&captcha_persist_data=AZkj-5HqoXlsmEo3clgW9gmBHEKtRG3BQoRQ8EdYxrW2JTVg7sw6i_5wAqibWnE5Ubf2XivTgVpW70CJLfLwbtcAJkFylMxpep13OHyDh8Y7MPVI7LZTpeznA5e4yFJ8fUGPW4fUjAKngzl5rqJ91bZx7pKYErtj_GVhUDMLivUq0XlKibMoci2qPry7TRJskGjruNBWsAgTHolP5fHqFzssS8m3-OQoFJPjmX9vYye-3K5_0POt0oQ2J7q_iuE-Spdmv_0r4GdpOA-R-Fr0USs8V9OJd3jGCa1SZiFruN6pPh4no-CGqA5MJm-f3G1ID1yvAyFifk6No2QOv-yVcrG7PFX4eaE4UWEklZzmlcbBsENSFZt7M3f7KG-nLCUTZTk&captcha_response=&contactpoint_label=email_or_phone&firstname=Paul&ignore=reg_second_contactpoint__%7Ccaptcha&lastname=Smith&locale=en_GB&lsd=AVrgQt1V&ns=1&referrer=&[email protected]&[email protected]®_instance=9p9RW-B5RLUuCETwQ0f6VBig&[email protected]®_second_contactpoint__=&ri=9f2afcc5-92b5-6f74-f171-c2a48740f98d&sex=1&skstamp=eyJyb3VuZHMiOjUsInNlZWQiOiI2ZmNkN2MwN2U2OTNkZDc3NGYxMTgzMTc3ZGY0MzNhMCIsInNlZWQyIjoiYjRjYjI0NzJmMTA2ZmI4YzhhMmNmYWZhN2I4NWZkMjIiLCJoYXNoIjoiMmY0NmQ4NGJmYmJhMTcyMmI2MjA1Yjc0YTZhNGFhOTQiLCJoYXNoMiI6ImViOGI2MTQ3ZGFjYTRiNDNjMTM2MzMzYmU3M2JkZmFkIiwidGltZV90YWtlbiI6NDA5OSwic3VyZmFjZSI6InJlZ2lzdHJhdGlvbiJ9&terms=on
Por lo tanto, puse información de basura allí:
De la solicitud POST anterior no se menciona la palabra "falso"
Esta vez escribí el nombre de usuario y la contraseña como "prueba" e hice clic en inicio de sesión:
ab_test_data=AAAAAAAAf/fAfffAAAAAAAAAAAAAAAAAAAAAAAAA/qqVAAAAAAEAAA&email=test&lgndim=eyJ3IjoxOTIwLCJoIjoxMDgwLCJhdyI6MTkyMCwiYWgiOjEwNDAsImMiOjI0fQ==&lgnjs=1532076517&lgnrnd=014836_d6Rn&locale=en_GB&login_source=login_bluebar&lsd=AVrgQt1V&pass=test&prefill_contact_point=&prefill_source=&prefill_type=&skstamp=eyJyb3VuZHMiOjUsInNlZWQiOiI2ZmNkN2MwN2U2OTNkZDc3NGYxMTgzMTc3ZGY0MzNhMCIsInNlZWQyIjoiYjRjYjI0NzJmMTA2ZmI4YzhhMmNmYWZhN2I4NWZkMjIiLCJoYXNoIjoiMmY0NmQ4NGJmYmJhMTcyMmI2MjA1Yjc0YTZhNGFhOTQiLCJoYXNoMiI6ImViOGI2MTQ3ZGFjYTRiNDNjMTM2MzMzYmU3M2JkZmFkIiwidGltZV90YWtlbiI6NzQ5OSwic3VyZmFjZSI6ImxvZ2luIn0=&timezone=-60
Finalmente, he activado la autocompletar y he hecho el registro, el mismo comportamiento. Ninguna mención de nombre de usuario o contraseña ha sido enviada al servidor.
Supongamos, por un momento, que el nombre de usuario y la contraseña se enviaron al servidor. El riesgo sería igual que hacer clic en iniciar sesión de todos modos, por lo que se aplican los ataques estándar como MITM y XSS.
He probado esto en la versión 67.0.3396.99 de Chrome (compilación oficial) (64 bits) y la única extensión que he instalado es Tamper Data para Chrome.
A menos que el diseñador de la página fuera realmente esquizofrénico, no debería haber un mayor riesgo de seguridad. Un formulario HTML consta de:
Si no hace clic en uno de los botones de envío del formulario, los campos de entrada no deben ser miembros de la solicitud. Por lo tanto, si hace clic en un enlace, no se agregarán datos a la url del enlace, y si hace clic en un botón de envío de un formulario diferente, solo se enviarán los datos de ese otro formulario.
Las cosas pueden ser diferentes para un botón de Javascript. El javascript invocado puede acceder a cualquier dato de la página, por lo que podría enviar cualquier dato a cualquier URL. ¡Pero no puedo imaginar por qué alguien pudo haber codificado eso! Dicho de otra manera, si escribe sus credenciales en una página, confía en el sitio. Esa confianza se extiende a la página de inicio de sesión para no hacer cosas demasiado estúpidas o peligrosas (*). Por lo tanto, incluso si los riesgos técnicos pudieran aumentarse, siguen siendo los mismos desde el punto de vista de confianza.
(*) un programador que no sea demasiado cauteloso podría enviar las credenciales a una página incorrecta pero aún en el mismo sitio o dentro de la misma zona de seguridad. Así que no puedo imaginar una fuga de datos aquí. Y si el sitio es lo suficientemente pobre como para almacenar la contraseña en un formulario no cifrado en esa otra página, no puede confiar en que maneje correctamente su contraseña en ningún otro lugar, incluso cuando haga clic en el botón correcto.
Lea otras preguntas en las etiquetas web-application passwords authentication user-names