Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Manu en 09 de Abril 2021, 10:50

Título: Curso HTML tema 21. Con get se puede falsificar un formulario? por y para qué?
Publicado por: Manu en 09 de Abril 2021, 10:50
Buenas!

Pues esta duda me surge al llegar al final del tema donde se habla de las diferencias entre el método GET y el método POST.

Si con GET se pueden ver los datos enviados desde el formulario en la URL y, por lo tanto, el usuario podría cambiarlos, ¿no se podría usar esto de malas maneras?

Lo cierto es que no se me ocurre porque alguien enviaría, por ejemplo, como nombre en un formulario: Manuel, para posteriormente en la URL poner Juan.

Según la ultima lección del tema, POST es mas ventajoso que GET precisamente por este punto. Esto aparece en la tabla resumen al final del tema, pero en la misma lección antes de esa tabla, comenta que cada método es diferente y que dependerá del resultado que se quiera obtener si utilizar uno u otro.

Entonces, si primero decía que ninguno es mejor que el otro, ¿por qué luego parece que recomienda utilizar POST?
No veo de que manera se podría beneficiar alguien al cambiar los datos de un formulario enviado por la misma persona que luego los cambia...

¿Alguien me resuelve esta duda?

Si esto es así, entonces deduzco que siempre es mejor utilizar POST y, por lo tanto, en el apartado ¿cuál método es mejor?, debería decirse que POST...

¿no...?

Mamma mia...
Y yo pensando que para meterme en el mundo de la programación solo tendría que repasar un poco las clases de álgebra del cole... jajajaja
(ya se, ya se, esto aún no es programación) ;)


Un saludo!
Título: Re: Curso HTML tema 21. Con get se puede falsificar un formulario? por y para qué?
Publicado por: Kabuto en 09 de Abril 2021, 12:23
El problema de GET y que los datos sean visibles en la URL, no es tanto que el usuario pueda modificarlos.

Es sobre todo un problema de seguridad. Esa URL, con los datos personales, queda guardada en el historial de navegador.
Esto implica que si se trata de un ordenador compartido, otra persona puede consultar el historial de navegación y ver esos datos personales: nombre, teléfono, domicilio, nº seguridad social, contraseñas, claves.... La privacidad de esos datos es nula.

En ese caso, usar POST no es que sea mejor, es que es imprescindible.

Sin embargo, en otros casos donde no tenga importancia la privacidad, GET puede ser interesante.

Por ejemplo, en un buscador. En el mismo Google.
Supón que quiero compartir con otros una búsqueda de "Cursos Java", o guardarla para futura referencias.
Gracias a GET, tengo un enlace para compartir y guardar:
https://www.google.com/search?q=curso+java (https://www.google.com/search?q=curso+java)

No será necesario volver a escribir esos términos en el formulario de búsqueda de Google, basta con clickar en ese enlace y ya obtengo la búsqueda.

Esto en cambio, no es posible con POST.
Por ejemplo en este mismo foro, si vamos a la opción de búsqueda (https://aprenderaprogramar.com/foros/index.php?action=search), escribimos unos términos y hacemos la búsqueda obtendremos unos resultados.
Pero el formulario funciona con método POST, así que no voy a disponer de una URL que represente la búsqueda que he hecho.
Por tanto no voy a poder guardarla, ni compartirla...siempre que quiera replicar esa búsqueda, tendré que teclear de nuevo esos términos en el formulario.

Así que en este caso puede ser más interesante usar GET..., o tal vez no..., quizás queramos proteger la privacidad del usuario y evitar que los términos de su búsqueda queden reflejados en una URL en el historial...

Como ves todo tiene unos contrapesos, no hay uno mejor o peor. Son diferentes y usar uno u otro dependerá de cada caso.