programa - La mejor solución para proteger el código PHP sin cifrado
programa para encriptar codigo php (11)
Así que déjame ver, queremos mostrar Adán y Eva hay una fruta prohibida en un árbol, y nos gustaría una forma de evitar que coman ...
¿Qué tal tener un ángel con una espada llameante?
Puede sonar ingenuo, y no sé qué hace realmente tu aplicación, pero ¿qué pasa con el uso extensivo de includes?
Para el usuario legítimo, ¿todo el software debe ser visible o solo partes de él? Porque puedes ofuscar y dar una copia del código fuente para legitimar
Puedes envolver el php en un contenedor como Phalanger (.NET)
Quizás esté preocupado con el robo externo, lo que significa que su código se puede ver libremente en la web a medida que los clientes lo usan. Esto podría valer la pena invertir en un alojamiento web barato, por $ 50 al año, registrando a sus clientes legítimos con una serie en su código y haciendo que su aplicación publique información en su sitio web regularmente. Al menos, detectarías cuando el código se ha visto comprometido. Podría empujarlo con autodestrucción después de n días, dándole suficiente tiempo para contactar a su cliente y cambiar la serie. Esta podría ser la única inclusión ofuscada () de todo el código
En primer lugar, no estoy buscando un milagro ... Sé cómo funciona PHP y que no hay forma de ocultar mi código a los clientes sin utilizar el cifrado. Pero eso viene con el costo de una extensión que se instalará en el servidor en ejecución.
Estoy buscando algo diferente ... No estoy buscando encriptar mi código o incluso ofuscarlo. Hay muchos scripts PHP sin código encriptado / ofuscado, pero son aplicaciones comerciales. Por ejemplo, las aplicaciones del foro vBulletin y / o IP.Board.
Solo quiero saber qué enfoque utilizan estos tipos para sus aplicaciones ...
También estoy abierto a otras sugerencias.
Tenga en cuenta que soy una persona soltera que no trabaja para una empresa. Mi producto también es muy específico, no se venderá tanto. Solo quiero que sepan que no puedo permitirme consultar a un profesional de la ley para demandar a alguien o preparar una licencia comercial. Solo busco una manera simple de proteger mi producto simple, si es posible, de alguna manera ...
Debes considerar tus objetivos:
1) ¿Estás tratando de evitar que las personas lean / modifiquen tu código? En caso afirmativo, necesitará una herramienta de ofuscación / cifrado. He usado Zend Guard con buen éxito.
2) ¿Estás tratando de evitar la redistribución no autorizada de tu código? Una licencia EULA / propietaria le dará el poder legal para evitar eso, pero en realidad no lo detendrá. Un esquema de clave / activación le permitirá monitorear activamente el uso, pero puede eliminarse a menos que también cifre su código. Zend Guard también tiene la capacidad de bloquear una secuencia de comandos en particular en una máquina de cliente en particular y / o crear versiones de código de tiempo limitado si eso es lo que desea hacer.
No estoy familiarizado con vBulletin y similares, pero tendrían que encriptar / ofuscar o confiar en que sus usuarios hagan lo correcto. En este último caso, tienen la protección de tener un EULA que prohíbe los comportamientos que consideran indeseables, y el sistema legal para respaldar las infracciones del EULA.
Si no está preparado / no puede tomar acciones legales para proteger su software y no desea encriptar / ofuscar, sus opciones son a) Súbralo con un EULA para que tenga una opción legal si alguna vez lo necesita y esperar lo mejor, o b) considerar si una licencia de fuente abierta podría ser más apropiada y solo permitir la redistribución.
Distribuyen su software bajo una licencia propietaria . La ley protege sus derechos e impide que sus clientes redistribuyan la fuente, aunque no existe una dificultad real para hacerlo.
Pero como ya sabrá, la infracción de los derechos de autor (piratería) de los productos de software es un fenómeno bastante común .
La única manera de proteger realmente sus aplicaciones php de otras, es no compartir el código fuente. Si publica su código en algún lugar en línea, o se lo envía a sus clientes por algún medio, otras personas además de usted tienen acceso al código.
Puede agregar una marca de agua única a cada copia de su código. De esta forma puede rastrear las fugas hacia un cliente singe. (¿Pero eso te ayudará, ya que el código ya está fuera de tu control?)
La mayoría del código que veo viene con una licencia y tal vez una garantía. Una línea en la parte superior del guión que le diga a la gente que no altere el guión, tal vez sea suficiente. Yo; cuando encuentro un código fuente no abierto, no lo usaré en mis proyectos. Tal vez estoy un poco engañado, pero espero que no utilicen mi código que no sea OSS.
No he visto el código fuente de VBulletin en algún momento, pero la forma en que solían hacerlo en 2003 era insertar una llamada a su servidor dentro del código. IIRC, estaba en una línea de código realmente larga (como 200-300 + caracteres de largo) y se dividió en varias concatenaciones de cadenas y tal.
No hizo nada "malo" si lo pirateó, el foro aún funcionaba al 100%. Pero la IP de su servidor se registró junto con otra información y la usaron para investigar y emprender acciones legales.
Su número de licencia estaba incrustado en esta llamada, por lo que podían rastrear fácilmente la cantidad de direcciones IP / sitios web en los que se ejecutaba una copia con licencia.
Ofuscar cosas solo puede ser un inconveniente para sus clientes legítimos y respetuosos de la ley, mientras que las personas que quisieran estafarlo no son sus clientes objetivo de todos modos. (editado otros pensamientos sobre ofuscación)
Otra sugerencia para proteger su software: cree un modelo comercial en el que el código sea una parte incompleta del valor de su oferta. Por ejemplo, venda licencias de productos junto con acceso a algunos datos que administre en su sitio, o licencia el producto en un modelo de suscripción o con soporte al cliente.
Diseñar un EULA es un asunto legal, no un asunto de codificación. Puede comenzar leyendo algún texto EULA para productos y sitios web que use. ¡Puede encontrar algunos detalles interesantes!
Crear una licencia propietaria es muy flexible, y probablemente un tema más allá del alcance previsto de , ya que no se trata estrictamente de codificación.
Algunas partes de un EULA que vienen a la mente:
- Limitando su responsabilidad si el producto tiene errores o causa daños.
- Explicar cómo el cliente puede usar su software con licencia, por cuánto tiempo, en cuántas máquinas, con o sin derechos de redistribución, etc.
- Le otorga derechos para auditar su sitio, para que pueda aplicar las licencias.
- ¿Qué sucede si violan el EULA? Por ejemplo, pierden el privilegio de usar su software.
Debe consultar a un profesional legal para preparar un EULA comercial.
editar: Si este proyecto no puede justificar los gastos de un abogado, consulte estos recursos:
- " Asesoramiento EULA " en joelonsoftware
- " Cómo redactar un contrato de licencia de usuario final "
Si no puede crear una "aplicación en la nube" que usted mismo aloja y accede a través de la Web, entonces podría buscar crear un dispositivo virtual usando un servidor virtual (de VMWare, Parallels, Sun, etc.) e instalar un "lite". "versión de Linux sobre eso. Coloque su código PHP en el entorno virtual e instale la máquina virtual en su servidor. Asegúrese de crear una forma de evitar la carga en la raíz. Por supuesto, esto implicaría visitar físicamente al cliente usted mismo.
Vea nuestro Obfuscator SD PHP . Maneja enormes sistemas de archivos PHP. Sin requisitos de tiempo de ejecución en el servidor PHP. Sin gastos adicionales de tiempo de ejecución.
[EDITAR en mayo de 2016] Una respuesta reciente indicó que Zend no maneja PHP5.5. El SD PHP Obfuscator lo hace.
Zend Guard no es compatible con php 5.5 y es fácil de revertir, vaya a http://www.ioncube.com para la ofuscación. http://wwww.phplicengine.com puede licenciar los scripts de forma remota o local.
en mi opinión es, pero solo en caso de que su programa de código php esté escrito para un modelo independiente ... las mejores soluciones es c) Usted podría envolver el php en un contenedor como Phalanger (.NET). como todos saben, se vincula estrechamente al sistema, especialmente si su programa está destinado a usuarios de Windows. solo puede crear su propio algoritmo de protección en el lenguaje de programación de Windows como .NET / VB / C # o lo que sea que sepa en .NET prog.lang.family sets.