Post, Get y Request, cual es la diferencia entre ellos?..

6,122 views
Skip to first unread message

PHP Newbie

unread,
Apr 2, 2013, 11:24:04 AM4/2/13
to phplatin...@googlegroups.com
Recientemente un web master me regaló esta bonita explicación a esa pregunta:

Hola amigo, la gran diferencia entre post y get es:

Post - es un metodo que permite enviar informacion entre dos paginas o documentos .php o .html por medio de formularios html y cabe destacar que lo que hace unico al metodo post para el envio de datos o informacion es que dicho envio se hace oculto es decir nunca va a ver el usuario como es que se envia esta informacion, por que el envio se hace internamente invisible al usuario. y tampoco podra editarla una ves envie un formulario html.

Get - El metodo get es un metodo que tambien envia informacion entre paginas o documentos .php o .html pero dicho metodo es unico debido a que la informacion la envia por medio de la url es decir... por ejemplo: index.php?texto_mostrar=textoquesemuestra en pocas palabras si tu estas en una pagina que use metodo get para enviar informacion al enviar por ejemplo una contraseña en un formulario html.. al enviar dicho formulario te saldra una url parecida a esta... formulario.php?usuario=juanlopez&contraseña=tupasssecreta al hacer esto si te fijas... tu o cualquier otra persona puede mirar tu password y tus datos con solo mirar la url y incluso hasta editarlos... sobre la marcha.... y eso no es nada seguro...

En pocas palabras el metodo post es mas seguro que el metodo get... aun que podemos usar get bien para otras funcionalidades que no ocupen mucha seguridad o incluso hasta con fines esteticos... 

El metodo request es un metodo antiguo de php que ya no es recomendable usar, este metodo se trataba de una mescla entre get y post... es decir podias acceder con el a los datos tanto de get como de post.. y manipularlos tambien... 


Saludos!

K!k3

unread,
Jun 18, 2013, 11:25:37 AM6/18/13
to phplatin...@googlegroups.com
¿Cual me recomiendas para una encuesta, donde se debe escribir un texto grande?

Victor Navarro
Ingeniero de Sistemas
Barranquilla, COLOMBIA
3008102508
ICQ 279 364 380
Face: +573008102508
MSN: eres_u...@hotmail.com <desactivado>
Mail: eres_u...@yahoo.es
Whatsapp: +573008102508
Skype: eres_un_vago



Martin Peveri

unread,
Jun 18, 2013, 11:29:04 AM6/18/13
to phplatin...@googlegroups.com
Yo te recomiendo Post.

Adelys Alberto Belen

unread,
Jun 18, 2013, 11:33:30 AM6/18/13
to Martin Peveri, phplatin...@googlegroups.com

Lo normal sería Post en un formulario de encuesta

El 18/06/2013 10:59, "Martin Peveri" <martin...@gmail.com> escribió:
Yo te recomiendo Post.

--
Has recibido este mensaje porque estás suscrito al grupo "PHP Latinoamérica" de Grupos de Google.
Visita este grupo en http://groups.google.com/group/phplatinoamerica.
 
 

PHP Newbie

unread,
Jul 25, 2013, 10:30:33 AM7/25/13
to phplatin...@googlegroups.com
Para Martín Peveri,

Mira esta respuesta de César en el foro php programación:

Hola!

Principalmente la diferencia entre GET, POST, COOKIE y REQUEST es como llegan al servidor. Los datos GET se parsean desde la query string (es decir, de la URL del navegador), mientras que POST se parsea desde el cuerpo del request del navegador y COOKIE se lee desde las cabeceras del request. La variable REQUEST basicamente combina estos tres mecanismos y permite acceder a tu script a ellos independientemente de su origen.

Todas ellas se consideran variables inseguras, ya que tu usuario puede modificar todas ellas sin necesidad de autenticación ninguna. Es decir, tu puedes mandar los datos post, get o cookie que desees; como todas ellas son inseguras la variable REQUEST es insegura.

La gracia de REQUEST es que puedes admitir los datos por cualquier metodo.

Un saludo

C#

Martin Peveri

unread,
Jul 25, 2013, 10:37:01 AM7/25/13
to phplatin...@googlegroups.com
Gracias amigo ahí me saque la duda. ;)

El Request esta obsoleto. Me había olvidado de este hilo.

Levhita

unread,
Jul 25, 2013, 10:41:44 AM7/25/13
to phplatin...@googlegroups.com

Chales con los prejuicios. .. no, el request no es obsoleto, el request hace algo muy específico y hay aprender a usarlo en el contexto adecuado.

Por ejemplo y un servicio web(de consulta) donde no te importe la fuente de los datos ni su posible modificacion.

On Jul 25, 2013 9:37 AM, "Martin Peveri" <martin...@gmail.com> wrote:
Gracias amigo ahí me saque la duda. ;)

El Request esta obsoleto. Me había olvidado de este hilo.

Martin Peveri

unread,
Jul 25, 2013, 10:43:36 AM7/25/13
to phplatin...@googlegroups.com
Yo me refería a como lo usaban en el manual de PHP + Firebird. Lo utilizan para traer datos de un formulario, eso si es obsoleto o me equivoco 

Levhita

unread,
Jul 25, 2013, 10:53:39 AM7/25/13
to phplatin...@googlegroups.com

No obsoleto, incluso en el momento de la escritura de ducho manual era considerado mala práctica... obsoleto es cuando algo con el paso del tiempo se descubre inadecuado.

Seguro que quieres seguir leyendo esa guía.?.

On Jul 25, 2013 9:43 AM, "Martin Peveri" <martin...@gmail.com> wrote:
Yo me refería a como lo usaban en el manual de PHP + Firebird. Lo utilizan para traer datos de un formulario, eso si es obsoleto o me equivoco 

--

Martin Peveri

unread,
Jul 25, 2013, 10:57:47 AM7/25/13
to phplatin...@googlegroups.com
Esa era la palabra correcta amigo Arias.
No, solamente la ví para que como funciona firebird en PHP, me causo intriga.

Carlos Miguel FARIAS

unread,
Jul 25, 2013, 1:36:57 PM7/25/13
to phplatin...@googlegroups.com
Si fuera obsoleto, por que le agregaron funcionalidad en PHP 5.3.
Por supuesto que si quieres asegurarte que algo venga del post, se usa $_POST o $_GET si solo puede venir de la url.
Todo es bueno o malo, en función del uso, apropiado o no que se haga del mismo.
Pero en general, en mi caso, todo lo que viene de la web es "basaura" hasta que se demuestre lo contrario, y para eso le paso un monton de filtros de validación, sobre todo a los elementos críticos.
En sitios críticos, los elementos de acceso de los links se modificaban en cada pasada, y esos links caducaban en digamos 30', de esa manera, un hacker no podía romper o forzar el acceso si el link no era uno apropiado.
Saludos: Miguel, La Pampa (RA)


El 25 de julio de 2013 11:57, Martin Peveri <martin...@gmail.com> escribió:
Esa era la palabra correcta amigo Arias.
No, solamente la ví para que como funciona firebird en PHP, me causo intriga.

--

Levhita

unread,
Jul 25, 2013, 2:14:04 PM7/25/13
to phplatin...@googlegroups.com
En esta presentación demuestran como se puede ver como usar cookies para hacer override de los valores en post y get de tal forma que se pueda realizar un ataque CSRF http://www.slideshare.net/ZendCon/lesser-known-security-problems-in-php-applications-presentation

Insisto la cosa no es que sea evil/obsoleto/inseguro por si mismo, pero generalizar a usar request para todo en lugar de tomarte el tiempo para pensar de donde deseas recibir los datos me suena más a flojera que a un argumento técnico.

2013/7/25 Carlos Miguel FARIAS <carlosmig...@gmail.com>



--
Freedom comes in small packages, usually TCP/IP
http://levhita.net
http://twitter.com/levhita

Analyzer

unread,
Jul 25, 2013, 4:19:42 PM7/25/13
to PHP Latinoamérica
Vaya! Hasta que por fin hubo alguien que lo supo explicar bien.

Tampoco es inseguro en sí mismo, si no por como se usa. lo que sí es una realidad es que por usar request te puedes meter en colisiones de parámetros.

Saludos!


El 25 de julio de 2013 13:03, Levhita <lev...@levhita.net> escribió:

Yo nunca utilice la palabra obsoleto. si no que por arquitectura usas post o get dependiendo de lo que esperes recibir. y request cuando no te importa el origen de los datos.

Tampoco es inseguro en sí mismo, si no por como se usa. lo que sí es una realidad es que por usar request te puedes meter en colisiones de parámetros.

Saludos!


2013/7/25 Carlos Miguel FARIAS <carlosmig...@gmail.com>
Si, pasa que por definición de nombres, los genero distintos, es mas, si quiero hacer las cosas segura, en lo que ve el usuario (URL) no pondría nombres que dieran pistas de que función cumplen dentro de mi còdigo.
En fin son criterios de como se hacen las cosas, pero si los de php le siguen poniendo pilas, no debe ser obsoleto, como todas las cosas, manejese con cuidado.
Saludos: Miguel, La Pampa (RA)


El 25 de julio de 2013 14:30, Levhita <lev...@levhita.net> escribió:

Generalmente no deseas independizar la fuente de los datos si no controlarlo. los post son posts y los gets son gets. cumplen funciones distintas es muy posible que termines provocando colisiones entre valores sin saberlo.

GET se usa para los mandarias por URLS  http://localhost.com/index.php?limit=10&page=2  ese es un URL que podrías compartir de una aplicación a otra persona y la idea es que vea exactamente lo mismo que tu.
POST es lo que mandas por formularios si tu formulario tiene parametro page y también mandas page por el URL estarás sobreescribiendo la información de request.

Por tradición los get son para obtener información y los posts para enviar información (usualmente reservado para trigerear una acción que generará un cambio).

Cuando diseñas tu aplicación es muy importante la diferenciación, aunque te parezca trivial. para servicios web por ejemplo es esencial en ocasiones diferenciar entre los 2 ya que si la petición llega por POST se hara una cosa y si llega por get se hará otra.


Saludos

PD: este es tipo de cosas de arquitectura por las que es esencial agarrar un buen libro para entender los conceptos básicos.


Saludos!

Sergio Santacruz

unread,
Jul 25, 2013, 10:51:42 AM7/25/13
to phplatin...@googlegroups.com

Hola!!

 

Pregunta, ¿Cuál es el método recomendado para remplazar los comandos GET, POST, COOKIE y REQUEST?

 

Gracias.

 

Sergio Santacruz

--

Analyzer

unread,
Jul 25, 2013, 4:47:05 PM7/25/13
to PHP Latinoamérica
Sergio,

Según lo comentado por Levhita serían de uso más recomendable get y post.


CMF y los que vengan del .Net

No digo que sean lo mismo, pero más o menos lo del get (obtener datos) y post (enviar datos), guarda algún parecido al access/assign de VFP o al set/get de C#/Vb.net ? ..



Claro que no hablo de si hacen lo mismo estrictamente porque es obvio que no ya que se usan para oop, sino hablo de "la idea detrás".

No sé si me explico..


Saludos!

Levhita

unread,
Jul 25, 2013, 4:59:29 PM7/25/13
to phplatin...@googlegroups.com
No los reemplazas, es lo que hay y lo tienes que usar. pero debes de tener siempre en cuenta de que esas variables pueden ser modificadas por el usuario y por lo tanto no debes confiar en ellas.

2013/7/25 Analyzer <thenewin...@gmail.com>



--

Carlos Miguel FARIAS

unread,
Jul 25, 2013, 5:55:03 PM7/25/13
to phplatin...@googlegroups.com
No tienen nada que ver, GET, POST y demás son arrays asociativos que se cargan con datos al llegar una petición al servidor desde la web, más allá que luego el php pueda modificarlos.
Los metodos Access y Assign de VFP, trabajan a nivel objeto, cuando una variable tiene el método access y se intenta acceder a su contenido, el contenido es devuelto por el método. De esa manera, el programador en dicho método puede consultar por ejemplo que usuario está identificado y devolver el verdadero valor u otro, p.e. "*********" .
El método assign en cambio, ataja el valor recibido, y si este valor cumple p.e. con reglas de negocio, modifica el valor de la propiedad del objeto, si no no.
De .NET ni la +PI.
Saludos: Miguel, La Pampa (RA)

Analyzer

unread,
Jul 26, 2013, 10:37:36 AM7/26/13
to PHP Latinoamérica
Incluso hubo un amigo que comentó que el get es más inseguro que el post:

Post - es un metodo que permite enviar informacion entre dos paginas o documentos .php o .html por medio de formularios html y cabe destacar que lo que hace unico al metodo post para el envio de datos o informacion es que dicho envio se hace oculto es decir nunca va a ver el usuario como es que se envia esta informacion, por que el envio se hace internamente invisible al usuario. y tampoco podra editarla una ves envie un formulario html.

 

Get - El metodo get es un metodo que tambien envia informacion entre paginas o documentos .php o .html pero dicho metodo es unico debido a que la informacion la envia por medio de la url es decir... por ejemplo: index.php?texto_mostrar=textoquesemuestra en pocas palabras si tu estas en una pagina que use metodo get para enviar informacion al enviar por ejemplo una contraseña en un formulario html.. al enviar dicho formulario te saldra una url parecida a esta... formulario.php?usuario=juanlopez&contraseña=tupasssecreta al hacer esto si te fijas... tu o cualquier otra persona puede mirar tu password y tus datos con solo mirar la url y incluso hasta editarlos... sobre la marcha.... y eso no es nada seguro...

 

En pocas palabras el metodo post es mas seguro que el metodo get... aun que podemos usar get bien para otras funcionalidades que no ocupen mucha seguridad o incluso hasta con fines esteticos... 


También recuerdo haber leído en la web sobre un desarrollador que mencionaba algo como que mientras desarrolla usa get, pero luego usa un procedimiento que el creo para de un solo golpe cambiar todo a post, antes de subir el sistema a modo producción.

Saludos!

Analyzer

unread,
Jul 26, 2013, 10:46:15 AM7/26/13
to PHP Latinoamérica
CMF,

De .NET ni la +PI ?..

Ya me imagino que sea, sobre todo que hoy es viernes !! jeje

Pero el access/assign son equivalentes al get/set de .net para objetos.

Incluso, el amigo Robert Martinez elaboró un manual para subclasear comparando VFP Vs. .Net

Cómo definir y utilizar propiedades


Crear SubClases de todos los controles, agiliza el mantenimiento.



Saludos!

Alvaro Lizama

unread,
Jul 26, 2013, 10:41:40 AM7/26/13
to phplatin...@googlegroups.com
Ambos son "inseguros" y es por que el protocolo HTTP por default no encripta datos, al final con con un sniffer puedes ver lo que se manda por post o por get, la diferencia es que get pasa todo en la url por lo cual queda hasta en los logs y post no.

Pero son para cosas distintas como ya dijeron abajo. Si quieres mas seguridad pones SSL y ese problema ya queda resuelto.

--
Alvaro Lizama
http://alvarolizama.net


El viernes, 26 de julio de 2013 a las 09:37, Analyzer escribió:

> Incluso hubo un amigo que comentó que el get es más inseguro que el post:
>
> Post - es un metodo que permite enviar informacion entre dos paginas o documentos .php o .html por medio de formularios html y cabe destacar que lo que hace unico al metodo post para el envio de datos o informacion es que dicho envio se hace oculto es decir nunca va a ver el usuario como es que se envia esta informacion, por que el envio se hace internamente invisible al usuario. y tampoco podra editarla una ves envie un formulario html.
>
>
> Get - El metodo get es un metodo que tambien envia informacion entre paginas o documentos .php o .html pero dicho metodo es unico debido a que la informacion la envia por medio de la url es decir... por ejemplo: index.php?texto_mostrar=textoquesemuestra en pocas palabras si tu estas en una pagina que use metodo get para enviar informacion al enviar por ejemplo una contraseña en un formulario html.. al enviar dicho formulario te saldra una url parecida a esta... formulario.php?usuario=juanlopez&contraseña=tupasssecreta al hacer esto si te fijas... tu o cualquier otra persona puede mirar tu password y tus datos con solo mirar la url y incluso hasta editarlos... sobre la marcha.... y eso no es nada seguro...
>
>
> En pocas palabras el metodo post es mas seguro que el metodo get... aun que podemos usar get bien para otras funcionalidades que no ocupen mucha seguridad o incluso hasta con fines esteticos...
>
>
>
> También recuerdo haber leído en la web sobre un desarrollador que mencionaba algo como que mientras desarrolla usa get, pero luego usa un procedimiento que el creo para de un solo golpe cambiar todo a post, antes de subir el sistema a modo producción.
>
> Saludos!
>
> El 25 de julio de 2013 15:59, Levhita <lev...@levhita.net (mailto:lev...@levhita.net)> escribió:
> > No los reemplazas, es lo que hay y lo tienes que usar. pero debes de tener siempre en cuenta de que esas variables pueden ser modificadas por el usuario y por lo tanto no debes confiar en ellas.
> >
> >
> > 2013/7/25 Analyzer <thenewin...@gmail.com (mailto:thenewin...@gmail.com)>
> > > Sergio,
> > >
> > > Según lo comentado por Levhita serían de uso más recomendable get y post.
> > >
> > >
> > > CMF y los que vengan del .Net
> > >
> > > No digo que sean lo mismo, pero más o menos lo del get (obtener datos) y post (enviar datos), guarda algún parecido al access/assign de VFP o al set/get de C#/Vb.net (http://Vb.net) ? ..

Analyzer

unread,
Jul 26, 2013, 11:15:37 AM7/26/13
to PHP Latinoamérica
Me siento como si me hubieran dado la bienvenida al mundo de los hackers jeje



Saludos!

Levhita

unread,
Jul 26, 2013, 12:28:26 PM7/26/13
to phplatin...@googlegroups.com
Post - es un metodo que permite enviar informacion entre dos paginas o documentos .php o .html por medio de formularios html y cabe destacar que lo que hace unico al metodo post para el envio de datos o informacion es que dicho envio se hace oculto es decir nunca va a ver el usuario como es que se envia esta informacion, por que el envio se hace internamente invisible al usuario. y tampoco podra editarla una ves envie un formulario html.

Usuario != Usuario Maligno

Si quieres modificar o ver lo que va por post es muy sencillo(has probado presionar f12 en tu chrome? ), demasiado. así que no, no es más seguro. sólo distinto. get se usa para unas cosas post para otras y debes de desconfiar de ambos.

Saludos!

2013/7/26 Analyzer <thenewin...@gmail.com>

Carlos Miguel FARIAS

unread,
Jul 26, 2013, 4:40:14 PM7/26/13
to phplatin...@googlegroups.com

Y de request y las Cookie.

Reply all
Reply to author
Forward
0 new messages