[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OFF] Lenguajes de programación para escritorio




El 11/02/2016 a las 12:01, Luis Felipe Tabera Alonso escribió:
On Thursday 11 February 2016 07:33:51 alparkom . wrote:
Explicado de forma simple; si hago una conexión en Java, el archivo
.java tendrá los datos de conexión (en caso de usar MariaDB, se
debería escribir en el .java la dirección del servidor, el usuario de
MariaDB, la contraseña del mismo y el puerto usado)... entonces, que
pasa si descompila dicho el .class que genera Java?

Lo estás haciendo mal, si el programa tiene todos esos datos 'tal cual', te va
a dar igual el lenguaje de programación, compilado o no. Un usuario malicioso
podrá obtenerlos. ¿Quién se supone que tiene acceso a la BD? ¿Solo usuarios?
¿Solo el programa? El usuario/programa que acceda a la BD ¿Puede hacer con
ella lo que quiera? ¿debería poder?

Luis


Efectivamente Luís, es lo que he querido transmitirle, que aunque sea compilado el programa, un usuario malicioso puede llegar hasta los datos, por mucho que él haga, y que los esfuerzos tiene que centrarlos en la base de datos. Alparkom, he entendido perfectamente lo que quieres decir, desde un principio. Creo que el que no lo ha comprendido bien eres tú. Por mucho que hagas, se puede llegar a los datos. Existen formas de descompilar programas compilados, como es C++. La seguridad tienes que hacerla en la base de datos en el servidor, de forma que el acceso sea por usuarios, para empezar. Cada instancia de la aplicación, instaladas en distintos ordenadores, debes hacerla con acceso de usuario y contraseña, el cuál es un usuario y contraseña distinto al usuario y contraseña de la base de datos. Si algún usuario malintencionado obtiene los datos de conexión de la bd, solo puedes asegurar los datos haciendo copias de seguridad, por ejemplo, diarias. El problema que planteas es hacer inaccesibles los datos de conexión desde una aplicación de escritorio. Y la respuesta es que, por mucho que hagas y quieras, si un usuario malintencionado con los conocimientos necesarios quiere obtener los datos de conexión, lo va a hacer. Por eso te digo que tienes que centrar la seguridad en la base de datos, en el servidor, y realizar copias diarias de la base de datos.

Por otra parte, la accesibilidad no sólo depende del programador, sino de que el lenguaje de programación, y más concrétamente la librería gráfica que utilices, proporcione los métodos necesarios para lograr este fin. Y en este sentido, java es de los lenguajes de programación que crean más problemas de accesibilidad, y por lo que lo descarto para software de escritorio. Genera problemas en sistemas Windows o Linux, a este respecto, pero sin embargo Android utiliza este lenguaje y las aplicaciones son accesibles, si se hacen bien, porque la interfaz gráfica de usuario no es java.

Otra cuestión que tienes que tener en cuenta, es que ya uses python, C++ u otro lenguaje, para implementar una aplicación con interfaz gráfica de usuario (esto es, con ventanas, botones, etc), tendrás que utilizar una librería gráfica, ya sea GTK, QT, Wx, etc. Los lenguajes de programación tienen sus bindings para poder usar dichas librerías. Así por ejemplo, python tiene pygtk, para gek, pyqt, para qt, pywx, para wx, etc. Estas librerías son paquetes complementarios que tienes que instalar, aparte de las herramientas propias de python. Y cuando hablo de python, como en el ejemplo, sucede lo mismo para otros lenguajes como C++, pues esto no depende del lenguaje en sí.

---
El software de antivirus Avast ha analizado este correo electrónico en busca de virus.
https://www.avast.com/antivirus


Reply to: