Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Duda: Evitar que hagan POST desde pagina externa PHP

Estas en el tema de Duda: Evitar que hagan POST desde pagina externa PHP en el foro de PHP en Foros del Web. Saludos a todos y gracias de antemano a quien me pueda ayudar... Tengo varios formularios los cuales puedo evitar que carguen si no se inicio ...
  #1 (permalink)  
Antiguo 11/02/2013, 00:04
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 16 años
Puntos: 12
Pregunta Duda: Evitar que hagan POST desde pagina externa PHP

Saludos a todos y gracias de antemano a quien me pueda ayudar...

Tengo varios formularios los cuales puedo evitar que carguen si no se inicio sesión o que carguen de forma externa (los tengo con include en un panel administrativo) mi problema es, si veo el código del formulario, veo a donde van enviarse los datos (exec/ejecutar.php), los id y name de los campos, también se puede ver como los va enviar (post o get)...

Probé hacer un formulario en otro host totalmente distinto, recrear los campos y repetir los id's y names y direccioné al ejecutor del código y todo se ejecuto con normalidad...

Mi pregunta es creo que obvia ¿Como puedo evitar esto?

Me parece que la respuesta esta por ahí... escondida en la simpleza... pero no la vislumbro... :D espero me puedan ayudar...
__________________
Mi web --> www.CarlosPC.net
  #2 (permalink)  
Antiguo 11/02/2013, 00:31
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Duda: Evitar que hagan POST desde pagina externa PHP

Como tal no hay algo en PHP que pueda implementarse y evitar enviar POST desde sitios externos, usando .htaccess podría evitarse, ahora, si quieres usar solamente PHP podrías usar sesiones, generas una sesión en cualquiera de tus páginas y en el archivo que procese tu formulario post verificas que exista dicha sesión, si no existe la petición es desde un sitio exterior...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 11/02/2013, 00:31
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: Duda: Evitar que hagan POST desde pagina externa PHP

Hola que tal.

La forma correcta que se me imagino es colocar colocar el include que contiene los parámetros para saber si ya inicio sesión o no, de esta manera protegeras todos los archivos que ejecutan cambios en tu base de datos.

La otra posible solución seria verificar la página de origen de donde se envía el formulario, de esta manera también es posible evitar el bug que tienes en tu archivo.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 11/02/2013, 10:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Duda: Evitar que hagan POST desde pagina externa PHP

No se puede evitar al 100%, pero puedes usar una técnica que se llama CSRF:

http://www.veracode.com/security/csrf
  #5 (permalink)  
Antiguo 11/02/2013, 14:11
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 16 años
Puntos: 12
Respuesta: Duda: Evitar que hagan POST desde pagina externa PHP

Gracias por las respuestas, por el momento lo pude bloquear con manejo de sesiones, pero aún asi estoy viendo lo de GatorV para mayor seguridad
__________________
Mi web --> www.CarlosPC.net
  #6 (permalink)  
Antiguo 11/02/2013, 14:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Duda: Evitar que hagan POST desde pagina externa PHP

Si de hecho el CSRF se usa así con una sesión y un token, pero aún así se puede "brincar" basta con que visiten primero tu pagina, obtengan el token, y luego hagan el POST.

Es por eso que no se puede mitigar al 100%, recuerda la regla de oro NUNCA CONFÍES EN NADA QUE VIENE DEL USUARIO, siempre, siempre valida en el servidor todo, que la acción que va a hacer tiene permisos y que los datos son los esperados. Es la única forma de estar seguros.

Saludos.
  #7 (permalink)  
Antiguo 11/02/2013, 14:30
Avatar de carlospc  
Fecha de Ingreso: noviembre-2008
Ubicación: Huancayo/Perú
Mensajes: 240
Antigüedad: 16 años
Puntos: 12
Respuesta: Duda: Evitar que hagan POST desde pagina externa PHP

Eso mismo GatorV, no se puede confiar al 100% en los usuarios, menos cuando es una aplicacion abierta a todos...

Gracias.
__________________
Mi web --> www.CarlosPC.net

Etiquetas: jquery, post, session
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:43.