Crear un Proxy en PHP

Un Proxy es una herramienta que lee un archivo remoto y lo convierte en un archivo local, esto para evitar problemas de seguridad como crossdomain. Esto es que la mayoría de aplicaciones en Internet (Flash, Ajax) que acceden a datos deben estar en el mismo dominio que el origen de los datos de lo contrario no pueden acceder a la información.

Implementación
Para implementar un proxy en PHP se puede utilizar la función readfile que toma un archivo y lo imprime. Por ejemplo si deseamos escribir el RSS de este blog a un archivo local se tendría:


Hay que notar que es necesario agregar un header que indique el tipo de contenido que estamos enviando. En nuestro caso enviamos contenido XML. Ahora si deseamos que se le pase la ruta a leer por parámetro GET se tendría:


Como verán es un tema muy sencillo pero que nos puede ahorrar muchos problemas pues es muy común leer información de dominios externos.

Comentarios Total 25 comentarios

Proxy
Publicado: 20/05/2007 6:01 pm

Aquí os dejo un proxy en php: http://www.anonimizador.com

maic
Publicado: 16/07/2007 2:56 pm

Hola,

He probado a usar este tipo de proxy y funciona perfectamente pero para leer ciertos XML no va.

Estoy intentando leer un xml que es generado dinámicamente y lo que me devuelve en el responseXML es el código ya interpretado a HTML (tablas, etc.).

En cambio, leyendo otros xmls funciona bien. Cómo lo puedo hacer para leer ese XML dinámico?

naveda
Publicado: 10/09/2007 11:20 pm

Hola,

he tenido varios problemas ultimamente con el tema del crossdomain al intentar crear un reproductor flash de una radio online (streaming).

Al sonido se accede por http://88.191.70.244:8612/ y el problema es que en mi PC lo reproduce pero al subirlo al servidor no lo reproduce (vease que no es el mismo servidor el que aloja el flash y el que aloja la web).

Como podria hacer un proxy para http://88.191.70.244:8612 ?

El problema es que el flujo de datos es sonido y no puedo usar la funcion readfile().. ¿o si?

Jose
Publicado: 23/10/2007 8:12 am

Hola disculpa es que no se mucho de PHP
Mira yo ya cree el RSS lector en mi PC funciona normal. Si lee normal.
De ahi cuando lo subo a un host y lo ejecuto no funciona.
Ahora estuve leyendo y dices que hay que hacer lo que esta arriba, pero como hago eso prfavor?
Donde intersecto esos codigos?

-Te explico yo estoy haciendo un Lector Rss para mi Blog, pero ese lector Rss contiene info de un Diario de mi Pais.

Espero tu ayuda, Gracias eh… Buen sitio.

Yodaknokkers
Publicado: 23/11/2007 10:12 pm

Se supone que se guarda en un archivo proxy.php en el servidor dónde alojas el flash. En el flash llamas al archivo php en lugar de llamar a la url que contiene el rss…

…digo «se supone», porque yo lo hice y no me funciona. Al leer directamente el proxy.php el navegador me dice:

– Error de lectura XML: contenido incorrecto tras un elemento XML del documento … –

si alguien me puede explicar que ondas, porque lo demás esta bien, eso creo.

Yodaknokkers
Publicado: 23/11/2007 10:21 pm

Este es el error que me aparece :

Número de línea 2, columna 1:Warning: readfile() [function.readfile]: URL file-access is disabled in the server configuration in ……./proxy.php on line 4

Raul
Publicado: 11/12/2007 2:10 pm

Master… necesito ayuda con una tontera…

Cómo hago para que en el WORDPRESS aparezca esta caja de Enviar Comentario en el Home Page?

No logro dar con la solución…

Tendré que editar el código php como admin???

Saludos

Espero me puedas ayudar.

Zavala
Publicado: 18/09/2008 4:29 pm

Hola, pues la verdad ya estoy harto que en mi trabajo bloquean todos los webproxy y no podemos navegar a gusto, y yo quisiera en verdad saber como se hace una webproxy con php, por que es desagradable que webproxy que encontramos para navegar, webproxy que nos bloquean…en verdad es urgente la ayuda….

Emiliano
Publicado: 08/10/2008 3:15 pm

Hola unijimpe!
Esta muy interesante el blog del RSS y este de proxi pero no lo puedo hacer funcionar, hice todo tal cual y no funca.
¿que puede estar pasando?

gracias!

Mario
Publicado: 16/10/2008 11:30 am

En local funciona todo perfectamente pero en remoto nada de nada, ¿alguna solución?

Gracias por anticipado

Banner
Publicado: 18/02/2009 1:20 pm

Hola que tal…
yo tambien tenia el mismo problema al momento de subir el proxy a mi servidor de dominio, me puse a investigar y lo solucione con la funcion curl; aqui les dejo el codigo:

con este codigo debe de funcionarte tanto local como en cualquier otro servidor, lo unico que debes de tener habilitado es la extencion del curl, la cual es: extension=php_curl.dll …. cualquier duda respecto al uso de dicha funcion entra a la documentacion que da php http://www.php.net/curl venga animo!!

Banner
Publicado: 18/02/2009 1:23 pm

$vNombre_archivo=»feed.xml»;
$vRss_externo=»http://direccion_web»;
$ch = curl_init ($vRss_externo);
$fp = fopen $vNombre_archivo, «w»);
curl_setopt($ch,CURLOPT_FILE,$fp);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
header(«Content-type: text/xml»);
readfile($vNombre_archivo);

Heriberto
Publicado: 16/03/2009 10:48 am

hola quisiera saber si esto es aplicable a los archivos HTML, o sea, a todo tipo de sitios. mi idea es crear un web proxy y no tengo mucha informacion sobre eso. si alguien me puede ayudar se lo agradezco, aki esta mi correo heriberto.vj@gmail.com
gracias

Nestor Fabio
Publicado: 26/03/2009 1:42 am

Podrias explicar mejor el lector de noticias en as3 de modo que utilice el proxy en php.

Muchas gracias y que dios te bendiga.

Nestor Fabio
Publicado: 29/03/2009 2:20 am

Hola a todos,

ya subi el proxy y el archivo swf a mi sitio web, pero me sale el siguiente error:

El marcado del documento que sigue al elemento raíz debe estar bien formado.

Podrian ayudarme.

Gracias

eminem
Publicado: 16/04/2009 1:34 pm

hola amigo mi problema es el siguente me baje el php proxy y lo aloje en mi server y entro remoto desde mi escuela me funcio bien pero a la hora de entrar e sitios q contien javascript no puedo accedre ej: a hotmail me dice q mi debo tener habilitado la opcion de java scrip en mi navegador y la tengo habilitado como q el codigo del php proxy no soporta java o hay q agragarle algo podrias ayudarme amigo te lo agradecere espero tu respuesta

eminem
Publicado: 16/04/2009 1:35 pm

espero por la ayuda de ustedes gracias

phavlo
Publicado: 11/12/2009 2:04 pm

Hola necesito una pequeña ayudita para leer el siguiente rss:

rss

gracias!!
como ven es de facebook!!
como hago!!
con proxy no pude

lopsided
Publicado: 11/02/2010 5:55 am

Hola!

estoy tratando de solucionar un problema con un lector de rss en flash, como os ocurría a alguno de vosotros, la url a conectar está en un dominio distinto, por tanto tengo el handicap de la protección de seguridad de flash que estaba tratando de solucionar mediante este post usando el proxy, lo que ocurre es que no me carga nada el proxy, lo intento hacer así:

var rssURL:String = "proxy.php";
var entry:int = 0;
var rssXML:URLRequest = new URLRequest(rssURL);
var myLoader:URLLoader = new URLLoader(rssXML);
myLoader.addEventListener("complete", xmlLoaded);
trace(rssXML);

y claro, al trazar el rssXML me aparece en la salida:
[object URLRequest]

La verdad es que estoy un poco verde aún así que muchas gracias por vuestro tiempo. Un saludo!

mailto: lops1ded@hotmail.com

juanpablo
Publicado: 03/04/2010 7:02 pm

esto es lo que coloco en el proxy.php
<!–

Untitled Document

1.

1.

–>

Gustav
Publicado: 11/04/2010 10:26 am

Hola a todos,

Estoy tratando de cumplir con un cliente, su página web debe jalar el catalogo de vehiculos de otra página, sin embargo por la cuestion de ser otro dominio no puedo usar AJAX sino con nuestro servidor, probe con un proxy en el servidor, aparente solución.

Sin embargo no resulta ya que el contenido web en la otra página es generado dinamicamente mediante AJAX. Entonces lo que obtengo con el proxy carece de los datos útiles.

Existe otra página que hace lo mismo, lastima que no tengo el código fuente, y el autor de esta me dice «es facil», ¿alguien me puede orientar al respecto?. Estoy días probando y probando.
gracias

r.banda a cromosoft.com

unijimpe
Publicado: 11/04/2010 4:43 pm

Gustav, si estas intentando leer data de otro dominio en tu caso podrías ubicar la ruta la cual es llamada por AJAX para mostrar los datos y podrías hacer un proxy de esta URL. Con eso tendrías resuelto tu problema.

Juan
Publicado: 05/07/2010 5:11 pm

<?php
$proxy = "http://UrL/asd";

Ximo
Publicado: 10/07/2010 5:19 pm

Hola… soy uno de los que han probado tu lector rss y se han quedado maravillados y babeando viendo como las paginas que estaban creando les quedaban de maravilla con el rss. Pero luego al subirla a tu servidor te encuentras que no funciona por que se queda en Loading… y de hay no pasa… Y lo malo es que he seguido todos tus pasos, incluso lo del proxy.php y ni por esas no se si es que he hecho algo mal… o simplemente el codigo tiene algun error… pero estoy desesperado por que es como que te den un caramelo y cuando lo estas difrutando te lo quitan… ayudaaa!!!!!

Zeokat
Publicado: 30/08/2010 7:38 am

Es un contenido muy sencillo pero scripts gratuitos php de proxys, un ejemplo es http://www.proxy2surf.com

Como codigo está bien, la funcion file_get_contents o usar cURL son buenas soluciones tambien. Esta ultima quizas una solucion sencilla y eficaz.

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)