PageOnPage

En esta semana, seguramente como producto de las no-ganas de preparar finales, me puse a jugar en una cosa media bizarra (y que, supongo, alguien ya debe haber implementado muy-mucho mejor hace años... pero que no encontré en una primera búsqueda).

La cosa surge así: Estaba viendo de poder instalar una aplicación con base de datos en Aleph (especificamente este blog) y probé un par de cosas, todas sin éxito. La idea siguiente fue la de ver si era razonable y sencillo hacer una página que funcionara como repetidora de otra página, dando la impresión de ser local... y así empecé a tirar un par de líneas de código.

Anoche estaba aburrido y me puse a pulir el par de líneas iniciales que había tirado la semana pasada. El resultado de la trasnochada es este paquete; y la demostración del PageOnPage andando puede verse en este lugar, enmascarando el sitio web de FIUBA.

La aplicación es bastante sencilla, apenas unas 100 líneas en PHP. Básicamente tiene dos partes; una, un .htaccess con una reglita de mod_rewrite que redirije todo a la otra, el script _popwrapper.php. Este script conoce el host y el path en el que está corriendo el mod_rewrite y conoce el host y path de la pagina que debe enmascarar; con esos datos, la URI, el POST, el method y los headers del request, arma la URI de la página destino y un pedido que le envía al proxy web (no publiqué otra versión, que obvia el proxy). En base a lo que devuelve el proxy, se arma el request, reemplazando los enlaces absolutos del sitio y los dominios en las cookies. El resultado, navegar una pagina remota adentro de otra.

El codigo es desprolijo y tiene bastantes cosas sin hacer... a saber, no todos los headers se están reenviando, así que en el ida y vuelta se pierden cosas como referrers, archivos, headers de caché o fechas de modificación, etc.. El conjunto no es más que un mero juguete... pero implementa un par de features copadas. Por supuesto, todo muy bonitamente hardcodeado y bien bien poco genérico.

Cuando pude entrar a un foro, navegarlo, loguearme y dejar un par de mensajitos, consideré que era hora de irme a dormir, con la inquietud que me llevó a escribirlo ya satisfecha.

Trackbacks

    No Trackbacks

Comments

Display comments as (Linear | Threaded)


Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA