elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:49  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  [Reto] Bot en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Reto] Bot en PHP  (Leído 5,498 veces)
lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
[Reto] Bot en PHP
« en: 16 Septiembre 2011, 00:38 »

Hay un tipo de desafíos que se ven en las películas, con los músicos (o raperos, que son músicos de la voz) entran en un pique, uno hace algo y el otro tiene que hacerlo y luego superarlo. También los hay que lo hacen con mates de valoncesto y otras cosas.

Esto es un reto a ese estilo, consiste en ir añadiendo algo al bot para hacerlo más parecido a una persona en la navegación (con cookies, con referer, con todo eso), además para que sea más fácil indicarle los parámetros que tiene que rellenar (por ejemplo muchos formularios tienen campos hidden, podría rellenarlos él mismo), para que sea más fácil parsear el html después, para que sea más fácil usar proxies... el límite lo pone vuestra imaginación.

Creo que puede ser un reto interesante, entretenido, productivo y del que todos saquemos el divertirnos, un código interesante y aprender y hacer algo útil. Vosotros diréis.

Esto ha venido inspirado por este mensaje:

Y lo que yo digo es que si entre todos juntamos un poquito que aporte cada uno lo podemos hacer mucho mejor.

Por ejemplo, lo que has hecho madpitbull quedaría así:

Código
<?php
class PHPBot {
 
   private $ch;
 
   function __construct() {
     $this->ch = curl_init();
     curl_setopt ($this->ch, CURLOPT_COOKIEJAR, 'cookie.txt');
     curl_setopt ($this->ch, CURLOPT_RETURNTRANSFER, 1);
   }
   public function getURL(url, args) {
     curl_setopt($this->ch, CURLOPT_URL, url);
     if (args){
       curl_setopt ($this->ch, CURLOPT_POSTFIELDS, funcionquenoexistetodavia(args);
       curl_setopt ($this->ch, CURLOPT_POST, 1);
     }
     return curl_exec($this->ch);
   }
   function __destruct() {
      curl_close ($this->ch);
   }
}
?>

Pero para hacer un buen bot todavía queda mucho.

También intuyo que habrá mejores formas que curl, no parece estándar de php.


En línea

lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #1 en: 17 Septiembre 2011, 00:37 »

Gracias WHK! http://foro.elhacker.net/php/postear_en_foro_con_php-t338961.0.html;msg1663900#msg1663900

Código
<?php
class PHPBot {
 
   private $ch;
 
   function __construct() {
     $this->ch = curl_init();
     curl_setopt ($this->ch, CURLOPT_COOKIEJAR, 'cookie.txt');
     curl_setopt ($this->ch, CURLOPT_RETURNTRANSFER, 1);
   }
   private function encodeArgs($args, $separator = "&", $start = "?"){
     $r = "$start"
     foreach($array as $key => $value)
       $r += "$key=$value$separator";
     return $r;
   }
   public function getURL($url, $args = false) {
     curl_setopt($this->ch, CURLOPT_URL, $url);
     if ($args){
       curl_setopt ($this->ch, CURLOPT_POSTFIELDS, encodeArgs($args);
       curl_setopt ($this->ch, CURLOPT_POST, 1);
     }
     return curl_exec($this->ch);
   }
   function __destruct() {
      curl_close ($this->ch);
   }
}
?>

Lo he mejorado un poco, porque esto sólo está bien si poco a poco se va mejorando, si se hace de golpe es cansado y aburrido. No he mirado si funciona. Quien quiera colaborar puede hacer eso, o mejorarlo, el post de WHK tiene muchas cosas interesantes que ahora no entiendo.

Si veo que a nadie le importa sigo yo sola y me lo quedo para mí  :¬¬ no lo pongo más en el foro y chincha rabiña para todos, o no lo hago, igualmente ya tengo uno en python...

Aunque es interesante tenerlo en otros lenguajes porque es más fácil encontrar un hosting. Con javascript ya ni siquiera hace falta hosting :D


En línea

Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: [Reto] Bot en PHP
« Respuesta #2 en: 17 Septiembre 2011, 00:41 »

javascript? WTF!
En línea

---
madpitbull_99
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.898



Ver Perfil WWW
Re: [Reto] Bot en PHP
« Respuesta #3 en: 17 Septiembre 2011, 11:13 »

Citar
javascript? WTF!

Supongo que usa xmlhttprequest (Ajax) o algún framework como JQuery, para enviar los datos al formulario.

Con Node.js también se podría hacer desde javascript.

En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #4 en: 28 Septiembre 2011, 16:37 »

Lo he estado pensando y no se que es mejor, si php o javascript. :-X

Una posible aplicación sería poner en una página (cada uno en la suya) un captcha, para saltarse el captcha de otra, además de controlar el acceso (que es para lo que sirve un captcha) (dependiendo de si se consigue pasar el otro captcha). He pensado que con php podría ser intertesante,  pero con javascriopt... ¿puede que fuera mejor? :¬¬ No estoy segura de qué es lo qeu seria más interesante o util. Las dos opciones me parecen buenas. ;)

Puede que esto no sea un reto, sino un proyecto, ¿no os interesaría participar?   :rolleyes: Yo creo que puede ser interesante, y puedo sacar ratos para hacer algo, sobre todo en vacaciones de navidades  ;) y estoy segura de que sería útil para muchos, no es tiempo perdido, y entre todos podemos hacerlo más y mejor. ;-)

Sin duda puede ser util para todos un bot así, ¿cómo se hace para propoer proyectos?  :huh: Yo creo que una propuesta como este reto sería lo más divertido para todos, más qu ehacer un diseño grande y todo eso, que casi parece que hay que hacerlo con traje y corbata  :P pero no se que piensa el resto de la gente  :-\

En javascript además se puede correr con node.js. ¿no es genial?  ;D
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #5 en: 29 Septiembre 2011, 17:58 »

No puedes comparar de esa forma PHP y javascript, tienen distinto objetivos.
En línea

lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #6 en: 30 Septiembre 2011, 17:47 »

No puedes comparar de esa forma PHP y javascript, tienen distinto objetivos.

¿Ah no? Si el objetivo es hacer un bot, ¿por qué no puedo comparar así cuál de los dos lenguajes es mejor para ese objetivo en particular?
En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.089


Mtz De C.


Ver Perfil WWW
Re: [Reto] Bot en PHP
« Respuesta #7 en: 30 Septiembre 2011, 20:05 »

mmm define "bot" porque para crear inteligencia artificial necesitas algo más q PHP. Dicho lenguaje está más enfocado para el funcionamiento web desde páginas muy simples hasta ERP o CRM muuuuy robustos, pero siempre dependerá de un servidor, OS, etc...

Por cierto, JS (javascript) no es AJAX...

Saludos
En línea



Con sangre andaluza :)
lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #8 en: 30 Septiembre 2011, 21:06 »

Lo he estado pensando y no se que es mejor, si php o javascript. :-X

Una posible aplicación sería poner en una página (cada uno en la suya) un captcha, para saltarse el captcha de otra, además de controlar el acceso (que es para lo que sirve un captcha) (dependiendo de si se consigue pasar el otro captcha). He pensado que con php podría ser intertesante,  pero con javascriopt... ¿puede que fuera mejor? :¬¬ No estoy segura de qué es lo qeu seria más interesante o util. Las dos opciones me parecen buenas. ;)

...

Sin duda puede ser util para todos un bot así, ¿cómo se hace para propoer proyectos?  :huh: Yo creo que una propuesta como este reto sería lo más divertido para todos, más qu ehacer un diseño grande y todo eso, que casi parece que hay que hacerlo con traje y corbata  :P pero no se que piensa el resto de la gente  :-\

En javascript además se puede correr con node.js. ¿no es genial?  ;D

Además se puede crear inteligencia artificial en php,  >:(

¿es que nadie entiende lo que digo o qué?  >:(
« Última modificación: 30 Septiembre 2011, 21:08 por lnvisible » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #9 en: 1 Octubre 2011, 00:16 »

Igual, los navegadores no permiten peticione entre dominios con javascript.

PHP es lo ideal para esto.

Tendrás un mejor rendimiento, no dependes del navegador ni de sus configuraciones y muchas mas ventajas para este tipo de objetivos.


Tienes que estudiar los objetivos y conceptos de los dos lenguajes, porque andas perdido.
« Última modificación: 1 Octubre 2011, 00:21 por ~ Yoya ~ » En línea

lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #10 en: 1 Octubre 2011, 13:27 »

Pero gastas recursos en el servidor, en javascript puedes poner muchas más cosas sin preocuparte de tus recursos.

También lo puedes ejecutar como un script normal, con node.js

Y con reflexión en javascript puedes ejectutar el javascript qeu encuentras en las páginas, con php es mucho más complicado hacer eso. El bot va a poder simular mejor ser humano.

Además sí que se puede hacer peticiones cross domain con javascript.
www.google.com/search?q=cross+domain+javascript
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #11 en: 1 Octubre 2011, 15:19 »

No tienes idea de nada, no pongas link de google porque solo dices que busque, si estas seguro agrega un link de una pagina especifica.

Te repito que los navegadores no permiten la petición entre dominios, hay una forma de permitir peticiones entre dominios pero tienes que tener acceso al dominio para establecer esta propiedad y asi que esto no es valido.

Existe otra forma, utilizando como puente a PHP, que al final estaría utilizando PHP.

También existe otra forma, llamada jsonp pero solo es para realizar peticiones a archivos especifico cuya resultado es en json.
http://asiermarques.com/2009/03/12/ajax-entre-dominios-con-json-y-jquery/

La próxima muestra ejemplo, es fácil ir a google y poner cualquier cosa y mostrar el link. No siempre es lo que esperas.


No creas todo lo que te dicen y  solo cree en la mitad de lo que vez



Al parecer tienes un mal conceptos sobre algunos términos, antes de escribir debes saber lo que escribes.

Saludos.
« Última modificación: 1 Octubre 2011, 15:23 por ~ Yoya ~ » En línea

lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #12 en: 1 Octubre 2011, 19:20 »

No he puesto como hacerlo porque hay varias formas de hacerlo.
1. Algunas páginas pueden no restringirlo.
2. Es posible acceder con un proxy, hay muchos, yahoo proporciona uno, es posible usar otros. De hecho, usar un proxy no es una opción, es algo que hay que hacer con un bot, sea en javascript o en php, si no es un canteo.
3. ¿De qué dominio es el código que se pone en un bookmarklet?
4. ¿De qué dominio es lo que se ejecuta con node.js?
5. En algunos casos es posible usar iframes.
6. Hay muchas páginas que no dan la información en html, sino que están hechas con ajax, el código web de la página para un bot no es más que el javascript que tiene que ejecutar. En ese caso el bot haría mucho mejor en ser javascript, permitiría invocar ese otro javascript y recibir los objetos json que mencionas. En este caso no sólo no hay problema en usar javascript, sino que es mucho mejor usar javascript.
7. Google ofrece más resultados si no te valen los anteriores. Creo que todo son ventajas desde el lado de javascript y no veo ninguna desde php.
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #13 en: 1 Octubre 2011, 23:40 »

Trata de mostrar TU concepto con ejemplo y no con palabras, asi igual los que leen aprenden.

1º Algunas pagina no lo restringen???, un bot  no funciona si no puede ingresar en una web. Puedes mostrar 5 paginas no comercial que no restringen petición entre dominios, osea paginas normales


2º El funcionamiento de un bot no varia si usas proxy o no, se puede decir que es algo de mas.
Citar
3. ¿De qué dominio es el código que se pone en un bookmarklet?

No entiendo lo que dices, es algo incoherente, Eso es parte del navegador. Esto es un ejemplo de un bookmarklet, que usa wikipedia como ejemplo.
Código
(function(){q=document.getSelection();if(!q)q=prompt('De qué estás buscando información?:');
if(q)location.href='http://es.wikipedia.org/w/index.php?search='+escape(q);})()

Lo que hace simplemente es tomar el dato que se ha ingresado y lo redirige a una pagina mas el dato. En este caso es wikipedia y hace una busqueda. Osea, solo redirige no hay nada de peticiones GET/POST en el source.


Citar
4. ¿De qué dominio es lo que se ejecuta con node.js?

Es algo incoherente, que tiene que ver node.js
Cita de: lnvisible
En javascript además se puede correr con node.js. ¿no es genial?



Citar
5. En algunos casos es posible usar iframes.

Y como realizas peticiones POST?


Citar
6. Hay muchas páginas que no dan la información en html, sino que están hechas con ajax, el código web de la página para un bot no es más que el javascript que tiene que ejecutar. En ese caso el bot haría mucho mejor en ser javascript, permitiría invocar ese otro javascript y recibir los objetos json que mencionas. En este caso no sólo no hay problema en usar javascript, sino que es mucho mejor usar javascript.

Hay muchas páginas que no dan la información en html, sino que están hechas con ajax....  Invocar javascript y recibir objetos en json.


Citar
7. Google ofrece más resultados si no te valen los anteriores. Creo que todo son ventajas desde el lado de javascript y no veo ninguna desde php.

LOL


Trata de agregar códigos que prueben que lo que dices es cierto, porque cuando comienzas a hacerlo, hay es cuando te darás cuenta que estabas en un gran error.

Saludos y suerte.
« Última modificación: 2 Octubre 2011, 00:18 por ~ Yoya ~ » En línea

RedZer


Desconectado Desconectado

Mensajes: 654



Ver Perfil
Re: [Reto] Bot en PHP
« Respuesta #14 en: 2 Octubre 2011, 00:01 »

tranquilas niñas  >:D jajaja
En línea

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Reto!!
Ingeniería Inversa
HaCkZaTaN 2 858 Último mensaje 10 Septiembre 2004, 09:30
por Ðevastador
Reto vB
Ingeniería Inversa
nhouse 2 962 Último mensaje 16 Marzo 2005, 09:41
por 4rS3NI(
RSA - reto
Desafíos - Wargames
3l-€kTr4 4 2,022 Último mensaje 12 Marzo 2005, 12:58
por Unravel
reto en VB6
Ingeniería Inversa
ellolo 1 729 Último mensaje 15 Abril 2005, 10:03
por UnpaCker!
reto!
Hacking Wireless
evola 3 384 Último mensaje 30 Junio 2006, 04:53
por o2T7f6j2
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines