Pregunta con respecto a la piratería Ajax

Todas,

Tengo un sitio web PHP escrito en Zend Framework y MVC. La mayoría de las acciones del controlador comprueban si la solicitud es una solicitud de Ajax o no, de lo contrario redirigen al usuario a la página de inicio. Estoy pensando en varias formas de romper ese sitio. Estoy considerando el siguiente escenario:

  1. Un usuario crea su propio proyecto PHP en su máquina local.
  2. El usuario escribe una solicitud JQuery ajax post en uno de los controladores en mi sitio e intenta publicar información maliciosa. Ex:

    $.ajax({ type: 'POST', url: "https://marketsite/getinfo/getstuff", cache: false, dataType: "html", success: function(html_response){ alert(html_response); }, error: function(xhr,ajaxOptions,errorThrown){ alert(errorThrown); } }); 

Mi pregunta es ¿el atributo “url” en la solicitud de ajax anterior toma la ruta absoluta? Sé que toma un camino relativo. Además, ¿es posible romper cualquier sitio al enviar tales solicitudes?

Gracias

Mi pregunta es ¿el atributo “url” en la solicitud de ajax anterior toma la ruta absoluta?

La misma política de origen evita que JavaScript realice una solicitud y lea la respuesta a menos que sea para el mismo host, puerto y protocolo.

Eso no impide que un atacante realice ninguna solicitud HTTP que le guste (es trivial construir uno manualmente que se vea igual que uno creado a través de JS) y no impide que un atacante engañe a un usuario para que realice una solicitud al atacante. Me gusta (sin embargo, impide que el atacante obtenga la respuesta a esa solicitud).

No es necesario que el atacante involucre PHP o cualquier otro lenguaje del lado del servidor para hacer algo de esto.

Además, ¿es posible romper cualquier sitio al enviar tales solicitudes?

Eso depende de cómo esté escrito el sitio. Debe aplicar las mismas verificaciones de seguridad en los URI diseñados para acceder a través de JavaScript que los diseñados para el acceso con una solicitud directa del navegador.

A menos que sus clientes modifiquen la configuración de seguridad de su navegador, las solicitudes AJAX están limitadas a rutas relativas de sus sitios web de origen. Por supuesto, un hacker puede modificar el Javascript para que apunte a cualquier URL que quiera.

La respuesta de David fue muy útil y necesito mencionar un par de información 1-El framework Zend tiene una función para detectar la solicitud ajax verificando esto Detectando solicitudes AJAX

2-existe un proyecto de código abierto ( PHP IDS ), es muy útil, te permite:

Actualmente el PHPIDS detecta todo tipo de XSS, Inyección SQL, inyección de cabecera, cruce de directorios, RFE / LFI, ataques DoS y LDAP. A través de algoritmos de conversión especiales, el PHPIDS incluso puede detectar ataques muy ofuscados; esto abarca varios conjuntos de caracteres como UTF-7, entidades de todas las formas, como JavaScript Unicode, entidades decimales y hexagonales, así como ofuscación de comentarios, ofuscación mediante concatenación, código de shell y muchas otras variantes.

Espero que te haya ayudado 🙂