elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Resuelto] ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] ¿Como puedo obtener una URL con PHP desde un archivo AJAX?  (Leído 5,891 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Resuelto] ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« en: 19 Agosto 2019, 00:39 am »

Buenas noches a todos!

Estaba haciendo un sistema nuevo pero me estanque en un tema, digamos tengo un botón en mi pagina.php que al tocarlo realiza una función (JS) -> que va a llamar a un fichero_ajax.php (ajax)

Correcto... Cuando quiero obtener la URL de la pagina.php  con PHP de la siguiente manera:

En fichero_ajax.php
Código
  1. $url = $_SERVER["PHP_SELF"];
  2.  

Me va a devolver "/pagina/ajax/fichero_ajax.php"
pero yo necesito que me devuelva "/pagina/pagina.php"

Es decir la "URL" de la pagina desde donde se llamo la función JS -> que conecta con el archivo ajax

Muchas gracias!


« Última modificación: 9 Septiembre 2019, 21:02 pm por #!drvy » En línea

jmpesp

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #1 en: 19 Agosto 2019, 06:34 am »

No se puede hacer de esa manera.

La variable de entorno PHP_SELF devuelve la ruta relativa a la raiz del document del archivo que se esta ejecuntado, que en este caso es el archivo que consultas via AJAX.

Lo que si puedes usar es la cabecera "Referer" (asegurate de que tu script js la este enviando correctamente), que contiene la URL completa desde donde se genero la peticion.
Teniendo la URL completa simplemente extraes la URI con parse_url().

Aun asi, debes tener en cuenta que esa cabecera es totalmente manipulable por el cliente y no deberias basarte en ella para realizar ninguna operacion critica.

Ademas, el URI path no siempre corresponde con la ruta relativa del script php que esta atendiendo esa peticion (por ejemplo si usas URL rewrite).

----------------------------

Dejando eso de lado, que es exactamente lo que queres lograr?
Es decir, para que necesitas la ruta del archivo donde se origina la peticion AJAX?

Deberias proveer mas detalles sobre lo que estas haciendo para poder aconsejarte mejor.

Saludos


En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #2 en: 19 Agosto 2019, 20:20 pm »

Por razones de seguridad no me gusta nada que los usuarios puedan ejecutar funciones js y mucho menos que entre esas funciones js se puedan usar las funciones que llaman a archivos ajax. Por eso quiero saber desde que paginas se llaman a los archivos o peticiones ajax y decidir si permitirlos o no. Por supuesto esto no me hace la aplicación más segura con esto. Pero si me parece que me puede ayudar mucho.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #3 en: 19 Agosto 2019, 21:51 pm »

Por razones de seguridad no me gusta nada que los usuarios puedan ejecutar funciones js y mucho menos que entre esas funciones js se puedan usar las funciones que llaman a archivos ajax. Por eso quiero saber desde que paginas se llaman a los archivos o peticiones ajax y decidir si permitirlos o no. Por supuesto esto no me hace la aplicación más segura con esto. Pero si me parece que me puede ayudar mucho.

si tienes usa percepción entonces probablemente tu sistema tenga un hueco de seguridad gigante...

no importa lo que hagas, js será ejecutado si asi el usuario lo desea, y si es un ataque contra tu seguridad es posible que ni si quiera js esté involucrado sino métodos que te hagan creer que es realmente un navegador y que la llamada venga de donde quiera, a fin de cuenta solo son cabeceras del navegador y pueden ser cambiadas a voluntad con un mínimo de conocimientos
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #4 en: 19 Agosto 2019, 22:15 pm »

Lo que buscas son códigos anti-csrf, normalmente es un campo que contiene un código generado a la hora de cargar la página y luego (en el caso de AJAX), se devuelven más codigos segun se van procesado requests.

Lectura:
https://es.wikipedia.org/wiki/Cross-site_request_forgery
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html

Saludos
« Última modificación: 19 Agosto 2019, 22:16 pm por #!drvy » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #5 en: 19 Agosto 2019, 22:18 pm »

Lo que buscas son códigos anti-csrf, normalmente es un campo que contiene un código generado a la hora de cargar la página y luego (en el caso de AJAX), se devuelven más codigos segun se van procesado requests.

sin embargo a nivel de seguridad usualmente son mas para evitar que usuarios inexpertos salten la seguridad XD

a fin de cuenta un sistema para romper la seguridad incluso en javascript va a buscar enviar sus csrf correctamente XD
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #6 en: 19 Agosto 2019, 22:22 pm »

Lo más útil de los anticsrf (aparte de su principal cometido que es evitar ejecución de acciones indeseadas desde sitios de terceros), es que te obligan a pasar por una "pasarela" antes de ejecutar/llegar a tu destino.  Por supuesto, no van a evitar que el "atacante" llegue a su destino final, pero si consiguen que tenga que pasar antes por otro sitio... así mantienes un control de flujo bastante útil y puedes saber perfectamente de donde llega un request u otro.

Saludos
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #7 en: 19 Agosto 2019, 22:26 pm »

Lo más útil de los anticsrf (aparte de su principal cometido que es evitar ejecución de acciones indeseadas desde sitios de terceros), es que te obligan a pasar por una "pasarela" antes de ejecutar/llegar a tu destino.  Por supuesto, no van a evitar que el "atacante" llegue a su destino final, pero si consiguen que tenga que pasar antes por otro sitio... así mantienes un control de flujo bastante útil y puedes saber perfectamente de donde llega un request u otro.

Saludos

esto es muy cierto! sin embargo desde el punto de vista de lo que quiere el usuario (evitar que el usuario use su navegador XD ) esto no es tan util, sería mas util usar telex, fax o algo asi XD
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #8 en: 19 Agosto 2019, 23:41 pm »

No quiero que pase esto...

Función JS:
Código
  1. function Enviar_Mensaje(cadena, user)
  2. {
  3.       // cadena = Mensaje que enviará
  4.       // user = id del usuario el cual recibirá dicho mensaje
  5.  
  6.       $.ajax({
  7.       // etc
  8.       })
  9.  
  10.       .done({
  11.        // etc
  12.       })
  13. }
  14.  

Después va a la consola del navegador y escribe "Enviar_Mensaje('123', 7);"
Esto no tiene porque ser un problema de seguridad, para nada... pero ahora imaginate que nose alguna función lo que haga sea dar un rango administrativo "Hacer_Admin(id_user);" se escriba su ID... por supuesto puedo preguntar antes siempre si la persona que esta queriendo dar admin a alguien es un admin.. pero lo que quiero que vean es la vulnerabilidad que existe y que por eso quiero hacer eso.. Pero como no es recomendable hacerlo estoy tratando de obtener la url de la pagina que llamo al fichero.. por supuesto esto no arregla el problema simplemente es una cerradura más.. me queda revisar fichero por fichero y validar todo con php antes de realizar cualquier cosa.

La solución a mi tema es obtener la url desde JS y enviarla por parametro y usarlo en el fichero ajax pero estamos en la misma porque cualquiera puede editar eso.
« Última modificación: 19 Agosto 2019, 23:43 pm por MiguelCanellas » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: [Pregunta]: ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« Respuesta #9 en: 20 Agosto 2019, 00:10 am »

Citar
La solución a mi tema es obtener la url desde JS y enviarla por parametro y usarlo en el fichero ajax pero estamos en la misma porque cualquiera puede editar eso.

Sigues pensando en restringir al usuario en su entorno. Insisto, en JS no puedes restringir nada. Si vas a dar permisos de admin (por ejemplo), haz la consulta AJAX y en el propio PHP comprueba si el usuario puede dar esos permisos y si el que los recibe es el que el usuario dice. Implementa sesiones y estructuras de control.

Saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como puedo obtener las contraseñas ¿? Resuelto
Hacking
necro1991 4 5,019 Último mensaje 30 Noviembre 2010, 15:23 pm
por sexyta
[Resuelto] [Newbie] No puedo acceder a objeto JSON enviado por AJAX
PHP
iGust4v0x 8 4,976 Último mensaje 14 Enero 2015, 21:46 pm
por iGust4v0x
[Resuelto] Como llamar a una función php desde ajax
PHP
yoelrodguez 2 4,183 Último mensaje 12 Mayo 2015, 01:06 am
por yoelrodguez
[Resuelto] Como puedo obtener el validation_status
PHP
shamaka 1 2,901 Último mensaje 12 Mayo 2018, 19:29 pm
por shamaka
[Resuelto]: ¿Como puedo obtener el tamaño de una imagen/archivo y validarlo?
PHP
Leguim 4 4,362 Último mensaje 30 Agosto 2019, 21:07 pm
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines