Página 1 de 1

Leyendo datos de una página Web. InternetReadFile() API

Publicado: 04 Mar 2009 18:05
por Mestize
Hola. En el nuevo post del blog os dejo una librería de metatrader que tiene una función con la que es posible leer datos de una página Web. Está comentada con imágenes paso a paso su utilización.
Espero que os guste y vuestros comentarios allá o aquí.
Un saludo,
Mestize
http://www.forexmq4.blogspot.com

Publicado: 04 Mar 2009 19:59
por nstrader
Buen articulo Mestize, siempre he creido que con mql4 se puede hacer cualquier cosa hasta donde la imaginación y creatividad permitan si dominas el lenguaje.
Un saludo

Publicado: 04 Mar 2009 21:21
por nstrader
Y hablando de imaginación, de la misma forma que se puede leer un documento externo, también se puede leer un documento local y ya de paso ese documento que sea un archivo mq4 o mqh, y poniéndole más imaginación que ese archivo se pueda volcar a un formulario de una dirección web o a un ftp concreto. Resumiendo tenemos un indicador que roba archivos. Sería el titulo de un buen artículo, no quiero dar malas ideas, pero yo soy muy mal pensado y por eso te dije que no ejecutaba archivos compilados sin saber su código fuente. Creo que el fallo de seguridad estaría por permitir la importación de archivos DLL. Estaría bien comprobar este supuesto para prevenir al personal.
Un saludo

Publicado: 05 Mar 2009 09:29
por Mestize
nstrader escribió:Y hablando de imaginación, de la misma forma que se puede leer un documento externo, también se puede leer un documento local y ya de paso ese documento que sea un archivo mq4 o mqh, y poniéndole más imaginación que ese archivo se pueda volcar a un formulario de una dirección web o a un ftp concreto. Resumiendo tenemos un indicador que roba archivos. Sería el titulo de un buen artículo, no quiero dar malas ideas, pero yo soy muy mal pensado y por eso te dije que no ejecutaba archivos compilados sin saber su código fuente. Creo que el fallo de seguridad estaría por permitir la importación de archivos DLL. Estaría bien comprobar este supuesto para prevenir al personal.
Un saludo
Hola. La función API que emplea es "InternetReadFile()", como su nombre indica es para leer un stream of bytes de una URL Web standard. No sirve para copiar archivos locales.
Además, en metatrader se han cuidado mucho de las operaciones con ficheros locales permitiendo sólo manejar aquellos situados en directorios concretos tales como experts/files de uso propio para Metatrader. Lo cual me parece muy bien por seguridad.
Mestize

Publicado: 05 Mar 2009 18:49
por nstrader
Mestize escribió: Hola. La función API que emplea es "InternetReadFile()", como su nombre indica es para leer un stream of bytes de una URL Web standard. No sirve para copiar archivos locales.
Además, en metatrader se han cuidado mucho de las operaciones con ficheros locales permitiendo sólo manejar aquellos situados en directorios concretos tales como experts/files de uso propio para Metatrader. Lo cual me parece muy bien por seguridad.
Mestize
No me refería a un acceso a un fichero local con metatrader, está claro que este solo permite acceder al directorio experts/files, me refería a accesos a otros directorios mediante funciones API de windows diferentes a las que has mencionado. Por algo han puesto la confirmación manual para llamadas a dll externas. Solo digo que se debería estudiar esto por seguridad. Yo cuando tenga tiempo lo estudiaré, pero si te adelantas, me quitas trabajo :D . Un saludo

Publicado: 05 Mar 2009 22:46
por Mestize
El manejo de ficheros a nivel local con metatrader empleando APIs(mover, copiar, renombrar, ejecutar, etc...) lo tengo comentado en el post de fecha martes 25 de noviembre de 2008 correspondiente a la API SHFileOperation().
Mira, si quieres, el archivo fuente "SHFileOperationTest.mq4" de ese post. Creo que te gustará. Lo tengo comentado línea a línea en código fuente, precisamente para que este tipo de operaciones con archivos locales sea algo controlado del todo por el usuario.
Un saludo,
Mestize

Publicado: 05 Mar 2009 23:40
por nstrader
Wow lo que acabo de hacer con eso, si que me ha gustado sí, es a lo que me refería, habra que tener cuidado a llamadas a la función lstrcpyA de kernel32.dll de compilaciones desconocidas y malintencionadas, pero es una función muy valiosa. Gracias

Un saludo