elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Consultar MySQL en servidor WEB desde C# ...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Consultar MySQL en servidor WEB desde C# ...  (Leído 13,655 veces)
NetStorm

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Consultar MySQL en servidor WEB desde C# ...
« en: 31 Julio 2011, 01:06 am »

Hola, estoy montando un software de facturación comercial, entonces trato de darle la mayor flexibilidad, algunos de mis clientes tienen páginas web, y bueno su hosting incluye BD en MySQL, el problema es que la BD es local, es decir desde PHP se trabajaría como "localhost", siendo así, ¿como podría acceder desde C# para realizar consultas?, alguno de Uds ya ha trabajado con algo parecido, necesito vuestra orientación.

Lo que trato de hacer es trabajar un sistema comercial que pueda ejecutarse desde una App de escritorio y desde el servidor web.

Saludos ;)


« Última modificación: 31 Julio 2011, 01:08 am por Xhushito » En línea

neoncyber

Desconectado Desconectado

Mensajes: 90



Ver Perfil WWW
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #1 en: 31 Julio 2011, 05:04 am »

Hola, hace tiempo puse una entrada en mi blog que especifica la conexion a base de datos desde c# con mysql
http://donkeysharp.blogspot.com/2010/09/conectarse-mysql-desde-net.html

Saludos


En línea

Código
  1. #!/usr/bin/python
  2. print "Visit:"
  3. print "http:\\donkeysharp.blogspot.com"
  4.  
.::IT::.

Desconectado Desconectado

Mensajes: 166



Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #2 en: 31 Julio 2011, 06:28 am »

Hola pues para ese entorno de trabajo  tienes 2 opciones :
1° la primera y más fácil es que desde el panel administrativo permitas acceso a la base de datos!! Y no todos los hosting lo permiten, consulta al proveedor del host .

2° la segunda opción pues es algo más trabajosa pero no tan complicada y es montar web services con php que luego consumirás desde tu aplicación web-escritorio.

Y bueno la otra opción es obvia cambiar de provedor de hosting , si lo que buscas es soporte para asp .net pero también base de datos libres como mysql –postgresql pues recomendaría
http://www.ubiquityhosting.com
Usan servidores Linux y emulan asp .net con Mono. Es 100% compatible con los web Services, con Asp .net tienes que cambiar algunas cosas.

Como pregunta personal,  ya tienes echa tu aplicación? Porque quieres usar Mysql? Te lo pregunto porque yo tengo avanzado mantenimiento de artículos(por familia-sub familias),clientes,proveedores y compras en c# y postgresql, uso web services para conexión de base de datos, si gustas pues  podemos compartir ya que todo eso lo tengo abandonado y quisiera terminarlo.
« Última modificación: 31 Julio 2011, 06:40 am por .::IT::. » En línea

Simplemente .::IT::.
NetStorm

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #3 en: 1 Agosto 2011, 18:17 pm »

NeonCyber gracias por la referencia, eso es bastante conocido con MySQL Conector, eso lo uso cuando trabajo en entornos de redes LAN o localmente, allí sirve, pero para un hosting... NO, bueno no es que no sirva, sino que tu ejemplo se basa en entornos locales...

Bueno en realidad si tengo de como hacer esto con servidores de hosting que tienen la BD en un servidor aparte al del Host como GoDaddy, y desde el Cpanel configuras conexiones remotas de MySQL, eso porque te dan un servidor de MySQL al estilo: mySQL.hosting.com

pero... ¿Alguien tiene idea cómo hacerlo con servidores que albergan la BD y MySQL en el mismo servidor?, es decir allí tu servidor de MySQL no es "mySQL.hosting.com" sino "localhost" y ademas quiero conectarme desde una red normal de Pc's no desde otro dominio que creo sería más fácil.
En línea

.::IT::.

Desconectado Desconectado

Mensajes: 166



Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #4 en: 1 Agosto 2011, 18:45 pm »

Pues si tu host  lo permite y tiene cpanel en la opción de “base de datos” –“mysql remota” agregas las Ips que quieres que tenga acceso a la base de datos.




Y en tu programa cambias la cadena de conexion para que apunte a tu host eso es todo 100% probado.(en un host que administro)

Nota: si tus clientes tienen ip dinamico entonces coloca % para que permita acceso a todos los host.
« Última modificación: 1 Agosto 2011, 18:51 pm por .::IT::. » En línea

Simplemente .::IT::.
NetStorm

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #5 en: 1 Agosto 2011, 22:27 pm »

Por ejemplo si mi host es www.paquito.com ¿como sería mi namehost para MySQL?, me echas una mano con eso último por favor...

Y se me ocurre que en lugar de Ip's dinámicas podría enmascararlo con un subdominio de DynDns por ejemplo ¿funcionaría?  ;-)

Gracias por tu tiempo y atención ;)

Una curiosa duda ¿porqué tienes un payaso en tu avatar?
« Última modificación: 1 Agosto 2011, 22:36 pm por Xhushito » En línea

.::IT::.

Desconectado Desconectado

Mensajes: 166



Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #6 en: 1 Agosto 2011, 22:45 pm »

Pues don Dyndns lo probe y no funciono :( ahora si tu host es www.paquito.com pues tu namehost tambien seria igual(sin el www al comienso). si no te funciona prueba a poner tu ip en la lista de permitidos talves ese es el problema. tambien puedes probar a conectarte pero desde el administrador de consola del mismo mysql.

abre un terminal y escribe

mysql -u user -h paquito.com -p

donde "user" es el nombre de usuario mysql y "paquito.com" es el dominio sin www al comienso, y fijate que error te bota.

« Última modificación: 1 Agosto 2011, 22:51 pm por .::IT::. » En línea

Simplemente .::IT::.
NetStorm

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #7 en: 1 Agosto 2011, 23:45 pm »

Uyuy!, ni modo tendré que usar eso del comodín "%", sabes la verdad no soy muy experto en MySQL, pero si permito todas las conexiones remotas, ¿Crees que se abren brechas de seguridad?, es cierto, el atacante quizás no conozca la estructura de mi BD, pero debe bastar conectarse, ejecutar comandillos y sacar datos o hacer maldades, ¿existe este riesgo?.

Tampoco me gustaría que me llamen "Mediocre programador" jajaja  ::)
En línea

.::IT::.

Desconectado Desconectado

Mensajes: 166



Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #8 en: 2 Agosto 2011, 00:21 am »

Pues Existe un problema se seguridad muy grande y es que la contraseña de la BD esta en el cliente (tu aplicación la contiene en su codigo fuente) por eso te recomendé Web Services que si es cierto es más trabajo te da mayor seguridad ya que puedes validar usuarios del lado del servidor usando las los SoapHeader!!
En línea

Simplemente .::IT::.
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 503



Ver Perfil
Re: Consultar MySQL en servidor WEB desde C# ...
« Respuesta #9 en: 2 Agosto 2011, 07:57 am »

el atacante quizás no conozca la estructura de mi BD, pero debe bastar conectarse, ejecutar comandillos y sacar datos o hacer maldades, ¿existe este riesgo?.

Ni siquiera se necesitaria eso, hace unos meses le hice ingenieria inversa a una aplicacion de escritorio de una empresa dedicada a la Ingenieria de Software, la cual fue programada en vb 6 y trabajaba con mysql en un hosting  de pago (te mostraria el enlace al tema, pero los autores del software pidieron al moderador de la sección borrar dicho tema hasta mejorar su seguridad), luego de unos minutos pude obtener acceso al hosting con todos los permisos, accedi a todos los datos incluyendo las contraseñas de los usuarios root en mysql.
De ahi para automatizar la exploración hice un pequeño software en C++ con QT:



http://foro.elhacker.net/programacion_cc/mysql_browser_c_y_qt-t321390.0.html

Las imágenes no estan disponibles, culpa del sitio donde las subi. Si no sabes compilarlo, deje una descarga a un ejecutable para windows y otra con el proyecto + ejecutable para linux, puedes probarlo en un hosting gratuito solo para ver que sencillo que es navegar por las bases de datos.

Ahora lo uso con frecuencia en slackware para explorar BD's y con las mejoras que le hice este tiempo puedo testear inyecciones sql automaticamente.

De todo eso lo que podria recomendar a grandes rasgos es que si utilizas en una BD local lo hagas con una aplicación de escritorio, si lo haces via web y quieres utilizar una aplicación de escritorio las contraseñas deberan estar en la BD remota y el usuario debe escribirlas cada vez que ingresa a la aplicación, debes tener un buen manejo de los permisos de usuario, procedimientos almacenados y algunas tablas de apoyo, ademas puedes combinar la aplicación con funciones en php para hacerlo similar a los web services de manera sencilla.
Otra forma seria hacerlo directamente en php o en asp.net, tener la aplicación en tu hosting (eso para no dar el codigo fuente a tus clientes) y segun el usuario conectado direccionar a la BD del hosting de cada cliente, algo como rentarles tu aplicación y que sus datos vayan guardandose en la BD del hosting de cada cliente (ahi seria bueno un cifrado para que solo tu aplicación pueda leer dichos datos).

Bueno ya no me extiendo más.
Saluos.
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines