entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Como puedo resguardar código fuente PHP

Supongamos que estoy desarrollando un sistema para un cliente en PHP, el cliente tiene su propio servidor (por ejemplo para un sistema de intranet). Yo le instalo el código fuente en su servidor... Puede pasar que mi cliente que tiene total control sobre ese servidor se apodere del código e incluso lo venda como suyo. Como podía hacer para que esto no pase (o por lo menos hacerlo mas díficil)?

Estuve leyendo el tema y como todos sabemos PHP es un lenguaje intérprete, con lo cual el código fuente se compila todo el tiempo. Si yo pudiera compilar el código y solo enviar un ejecutable, entonces ni ver ni modificar mi código, pero aparentemente no se puede compilar un PHP, aunque también leí que no es del todo cierto esto, ya que PHP compila antes de ejecutar, pero haciendo uso de cache (con Zend optimizer según leí) no necesariamente compila todo el tiempo, entonces, si hay alguna forma de manejar el cache sería como usar un php compilado? alguien sabe del tema?

Otra opción es poner restricciones en el código que impidan la ejecución por ejemplo si el nombre del servidor no es uno determinado, por ejemplo:

<?php
$host=gethostname();
$server="ServerEmpresaMontoto";
if($host!=$server) {
    die("Instalacion erronea");
}
//resto del codigo
}

Claro está, que al tener control sobre el servidor no van a tardar en revisar el código, descubrir estas lineas, comentarlar y hacer como si nada pasara; entonces debería ofuscar el código para que sea lo más dificil de detectarlas. En ese caso, algún consejo de qué validaciones puedo hacer y que ofuscador usar?

1 Respuesta

4votos

Leonardo-Tadei Puntos227320

Hola Ibarragp.

tu problema tiene una solución simple, pero no es tecnológica: la Licencia de Uso de Software.

Si vos das junto con el software una Licencia que limita el uso a ese cliente y no permite cambios, lo demandarás ante un incumplimiento.

Obvio que al estar el código fuente en el servidor del cliente, esto parece más fácil, pero en realidad ya sea que des código ofuscado o que des un ejecutable compilado con HipHopPHP, el cliente, si le interesa, podrá desofuscarlo o aplicarle ingeniería inverasa para descompilarlo, y esto es independiente del lenguaje de programación usado... incluso podría llamar a otro para que, mirando tus pantallas y el funcionamiento, le haga una copia que se vea y funcione igual o mejor que tu software.

Ahora bien, la Licencia te mete en una cuestión legal que simplificando mucho, se reduce a: tendrás el dinero suficiente para demandar a tu cliente cuando veas que está revendiendo tu software o modificándolo sin permiso?

Como esto no es algo barato, para un desarrollador independiente o para una empresa de software pequeña, la respuesta suele ser que no (aquí muchos que andaban muy campantes por la sala abren los ojos grande, porque creían que por entregar digamos un ejecutable en binario o un paquete JAR estaban a salvo de la copia) y tu cliente puede andar por ahí vendiendo copias de tu software casi inpunemente.

Peeero hay otra solución: dar tu software bajo la Licencia GPL de GNU: http://www.gnu.org/licenses/licenses.html

Con esta licencia, le estás dando a tu cliente libertad total para hacer lo que quiera con el software, pero bajo ningún criterio puede decir que lo que escribiste vos, lo escribió otro.

En la práctica, resulta que nunca se ha visto a un cliente cambiar de actividad para pasar a dedicarse a vender software. Si tu cliente regala o vende tu software, es muy probable que la otra persona requiera alguna ampliación o personalización; cuando vaya y mire al autor del software, verá que sos vos y te va a llamar: todos sabemos lo difícil que es leer y entender el código de otros cuando no se tiene documentada la arquitectura ni las desiciones de diseño.

Y acá viene la mejor parte: suponiendo que el cliente cambia tu autoría y diga que es el autor y quiera venderlo, basta con donarle tu código a la Free Software Fundatiosn, para que ellos con sus abogados hagan el litigio y consigan hacer cumplir la Licencia. La Licencia GPl jamás perdió ante un tribunal, y hay empresas que han tenido que cerrar por basarse en código que estaban robando a otros. La FSF tiene como su único objetivo desarrollar y hacer cumplir la GPL.

Nosotros en Pegasus, hace ya 14 años que el 98% del software que producimos es GPL en la última versión existente: nuestros clientes están muy contentos porque les damos independencia del proveedor aunque después muy rara vez llamen a otros y hasta hemos recibido mejoras a nuestro software desarrolladas por programadores que han adaptado nuestro código.

PD: el negocio de la venta de licencias de uso quedó hace tiempo en el pasado o se movió a otros terrenos, como los royalties que MS le cobra a Samsung por Android.
PPD: dejar que la gente se copie fácil el software fue la mejor estrategia de difusión de los productos de más de una gran corporación.
PPPD: perdón por la parrafada, pero es que esta cuestión tiene muchos mitos alrededor y cada tanto doy alguna conferencia al respecto: http://www.pegasusnet.com.ar/difusion/

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta