Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Skeletron en 1 Diciembre 2011, 07:24 am



Título: Como hacer un Ajax Cross Domain?
Publicado por: Skeletron en 1 Diciembre 2011, 07:24 am
Hola gente.
Estoy buscando como hacer un ajax cross domain. Necesito tirar un AJAX a megaupload desde mi sitio, sin pasar por otro sitio web antes. Necesito obtener (SI O SI CON AJAX, O CON CUALQUIER COSA QUE SEA DESDE EL CLIENTE) el html de megaUpload.

Alguien sabe como?

Repito:
* Obtener el Html
* De MegaUpload
* Sin pasar por otro sitio web antes (enviar un ajax a PEPITO.com y que PEPITO.COM tire un cURL a Megaupload... este NO SIRVE)

Alguien sabe como?
Saludos.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: [u]nsigned en 1 Diciembre 2011, 15:12 pm
Podes crearte un 'handler' en PHP que lea y extraiga el html que queres. Dicho handler seria un script PHP en tu servidor (a modo de proxy) y luego podes llamar a dicho script desde la pagina, por ejemplo con algun metodo AJAX de jQuery.

Estonces con AJAX estarias invocando a un script local, el cual lee desde megaupload, y asi te evitas hacer un cross-domain.

Saludos


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: EFEX en 1 Diciembre 2011, 17:36 pm
jsonp o ajax-cross-domain, se de que en algunos sitios estos dos metodos no serviran.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: Skeletron en 1 Diciembre 2011, 17:37 pm
Pero "As", digo claramente: "Sin pasar por otro sitio web antes"
Por favor, lee nuevamente el psot, le acabo de agregar un color ROJO a la parte que hay que prestarle atención ;)

Sin-Pasar-Por-Otro-Sitio-Web-Antes


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: Skeletron en 1 Diciembre 2011, 17:40 pm
jsonp o ajax-cross-domain, se de que en algunos sitios estos dos metodos no serviran.
JSONP creo que solamente recibe JSON como respuesta...

ALgun ejemplo que veas que funciona?


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: EFEX en 1 Diciembre 2011, 17:50 pm
JSONP creo que solamente recibe JSON como respuesta...
ALgun ejemplo que veas que funciona?

Si que tonto, disculpa  :-[

Estoy viendo algunos scripts pero sin resultado.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: [u]nsigned en 1 Diciembre 2011, 23:16 pm
Pero "As", digo claramente: "Sin pasar por otro sitio web antes"
Por favor, lee nuevamente el psot, le acabo de agregar un color ROJO a la parte que hay que prestarle atención ;)

Sin-Pasar-Por-Otro-Sitio-Web-Antes

Lee vos mejor, nunca he dicho que pases por otro sitio web, simlemente que te hagas un script PHP como handler, y llamar al mismo desde AJAX. Para la pagina desde donde usas AJAX estarias llamando a un script local  ;)

Y JSONP no es una opcion, megaupload no ofrece ninguna API.....asi que lo que yo te propongo es la unica opcion viable.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: raul338 en 2 Diciembre 2011, 03:21 am
El dijo del lado del cliente asi que PHP no cuenta

Lo que hacen las webs hoy en dia es que te instales un plugin.... O intenta con flash :P


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: Skeletron en 3 Diciembre 2011, 06:09 am
Lee vos mejor, nunca he dicho que pases por otro sitio web, simlemente que te hagas un script PHP como handler, y llamar al mismo desde AJAX. Para la pagina desde donde usas AJAX estarias llamando a un script local  ;)

Y JSONP no es una opcion, megaupload no ofrece ninguna API.....asi que lo que yo te propongo es la unica opcion viable.

Pasar por el SITIO WEB LOCAL, incluye pasar "POR OTRO SITIO WEB"... No debe pasar por ningun sitio web... por nadie... del broser debe salir directamente al sitio web "de la victima"... No debe pasar por un script local porque ya no sería un Ajax al sitio web de la victima... no sería un (leer el titulo) Ajax Cross Domain


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: Skeletron en 3 Diciembre 2011, 06:11 am
El dijo del lado del cliente asi que PHP no cuenta

Lo que hacen las webs hoy en dia es que te instales un plugin.... O intenta con flash :P

MegaUpload tiene un bloqueo de Ajax Cross Domain para Flash, así que tampoco puedo solucionar el problema de esa manera...
Lo que he visto, es que BitShare no tiene seguridad anti-cross-domain para Flash, y puede que tenga que pasar todo a BitShare, porque no encuentro otra forma :/


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: ~ Yoya ~ en 4 Diciembre 2011, 20:07 pm
@Skeletron, yo hace tiempo tenia el mismo problema. Tenia que realizar peticiones POST a una web, no quería realizarla desde el lado del servidor ya que estaría utilizando la conexión del servidor y alguno podía aprovecharse de eso para usar toda la conexión.

El problema de Jsonp es que se suele usar en sitios que utilizan una API para sus servicios y el sitio que estaba utilizando no contiene alguna API. Y a la larga no era la mejor solución ya que lo mas seguro estaría siempre en la misma circunstancias y me gusta realizar apps que funcionen SI o SI.

Dure unos días pensando la solución mas eficiente, y concluir que es mejor utilizar PHP como puente/proxy. Aunque al principio me negaba a utilizarla xD.

El código PHP con que realizas peticiones GET/POST lo alojas en el mismo servdidor, a si que se ejecutara al instante.

Saludos.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: EFEX en 5 Diciembre 2011, 01:27 am
Dure unos días pensando la solución mas eficiente, y concluir que es mejor utilizar PHP como puente/proxy. Aunque al principio me negaba a utilizarla xD.
El código PHP con que realizas peticiones GET/POST lo alojas en el mismo servdidor, a si que se ejecutara al instante.
Podemos dar esto como la solución ? yo estuve viendo scrips ( unos muy raros  :) ) pero sin resultado sobre megaupload.com.

Pregunta: ¿que protección tiene megaupload para estos casos? nunca vi esto y quisiera tenerlo en cuenta.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: raul338 en 5 Diciembre 2011, 02:48 am
Y si utilizas Frames? Frames invisibles y obtienes su codigo a travez del innerHTML :P


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: RaiSe en 5 Diciembre 2011, 12:16 pm
Hola.

Creo que no se puede hacer una petición ajax a un dominio externo, es una medida de seguridad de los navegadores. Puede que en firefox se pueda desactivar en la configuración, pero siempre a mano. No estoy 100% pero creo que es así, es como intentar modificar la barra de URL del navegador desde javascript para que muestre otro dominio diferente al real, es imposible.

Un saludo.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: ~ Yoya ~ en 5 Diciembre 2011, 14:09 pm
Estas en lo correcto @RaiSe, es una medida de seguridad. Los navegadores no permiten las peticiones hacías dominios del lado del cliente por seguridad.

Tampoco la solución es desactivarlo o activar alguna configuración del navegador. Siempre es mucho mejor optar por la solución mas estable, que funcione SI o SI.

@EFEX, hay scripts que trabajan como dije, utilizan un código PHP como puente para realizar peticiones GET/POST hacia un sitio y recibir información. Otra cosa, en programación no existe la magia, por mas impresionante que sea algo, tiene una lógica.

@raul338, no creo que sea la mejor solución, ya que igual no podrías realizar peticiones POST y tampoco podrías conocer el estatus de la petición, y conocer algun tipo de información que se mandan por las cabeceras HTTP. Te estaría limitando solo a peticiones GET y la forma en que el navegador maneja los frames.

Yo siempre elijo por una solución que cubra todos los campos, la mas estable, que tenga menos requisitos para su uso y la que tenga mucho mejor rendimiento.

saludos.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: RaiSe en 5 Diciembre 2011, 14:40 pm
Hola de nuevo.

Coincido con las opiniones que ya te dieron, lo correcto sería hacer un AJAX hacia tu servidor y desde ahí leer el HTML del otro sitio. Deduzco que el problema es porque el otro sitio guarda/loggea/bloquea o hace algo con la IP de tu servidor, por lo que necesitas que la petición la haga el cliente. En ese caso igual puedes leer el HTML del sitio remoto desde el cliente con un iframe, y leer el contenido del mismo con javascript. Pero si el problema no tiene nada que ver con la IP es mucho mejor usar la pasarela PHP.

Un saludo.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: raul338 en 5 Diciembre 2011, 16:21 pm
@Yoya El no necesita hacer peticiones por AJAX, solo necesita obtener el código fuente de megaupload. Por eso dije que puede probar con frames, no se que hará de a partir del código fuente pero bueno :P

Se que en HTML5 aparecen sockets web, podrías probar con eso :P


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: WHK en 6 Diciembre 2011, 13:58 pm
Por politicas de seguridad es imposible a menos que megaupload te entregue un json o xml con todo el contenido de esa web, ahi puedes tratar de obtener el contenido con un xmlrcp y content type pero en caso contrario es imposible a menos que encuentres un bug en algún explorador o esperes a que los sockets de html5 sean implementados.


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: [u]nsigned en 6 Diciembre 2011, 14:00 pm
Lo dije como 10 respuestas atras, la unica forma es usar un script php como 'proxy'  ;-)


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: Skeletron en 12 Diciembre 2011, 13:56 pm
No podemos dar como solucionar a enviar REQUEST (POST O GET) a MegaUpload desde PHP, porque MegaUpload cuando recibe 50 peticiones en menos de 30 segundos, bloquea tu IP durante 2 minutos.
Mi sitio web debería enviar unas 10.000 peticiones cada 30 segundos. Ese es el problema.

Raul, no se puede obtener el codigo HTML de un IFRAME (de ninguna manera), ya que es politica de los browsers... Intentalo tu mismo y verás que no podrás


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: Skeletron en 12 Diciembre 2011, 14:03 pm
Acaba de crearse un problema mayor.
Vieron que megaUpload cambió la interface? bueno, parece que tambien ha cambiado otras politicas de seguridad (que no van al caso contarlas, porque son muy largas... basicamente: ya no se puede descargar el archivo sin esperar los 46 segundos en la misma PC que se intenta descargar el archivo... o sea que ya no se puede compartir el link de descarga directo...)

La unica solucion es pasar TODO a BitShare.
Son 6 o 7 meses para migrar miles de datos....
Ahora mi solución sería tener un servidor con mucho ancho de banda para poder migrar todo de MegaUpload a BitShare... En casa, con conexion de 6MB tardaré como 6 meses para migrar todo :/


Título: Re: Como hacer un Ajax Cross Domain?
Publicado por: raul338 en 12 Diciembre 2011, 18:19 pm
Y algun servidor que permita "descargar desde web"? Al estilo rapidshare o mediafire? :P