Hola David,

Pues mira, me hubiera atrevido, pero pusiste la solución así que no tiene
mucho mérito. Para "descifrar" el código que pusiste sólo hace falta tener
algo de experiencia programando en C. Los nombres de las variables hacen el
código más prolijo y puede asustar de entrada, pero nada más.

Una cosa: la seguridad por ocultación no es seguridad. Simplemente se está
subiendo el listón. Particularmente en casos como Cython, que como
generador que es, va a producir código a base de plantillas. Teniendo
acceso al código fuente se podría incluso (potencialmente) reconstruir el
código original con bastante fidelidad.

Distribuir un binario cambia el asunto, claro, pero abre la puerta a otro
tipo de problemas.

Por último, lo que sugería el que hizo la pregunta original (programar algo
completamente desde 0, salvo el servidor web) es una locura. Hacer una app
web moderna de forma eficiente suele requerir una inmensa cantidad de
código de terceros. Cocinarse todo uno mismo significa reinventar no ya la
rueda, sino el coche entero. Me cansa sólo pensar la cantidad de horas que
se pueden ir en un simple motor de plantillas (programarlo desde 0,
depurarlo, mantenerlo...).

Saludos,
Ricardo

2018-04-04 14:34 GMT-10:00 Daπid <davidmen...@gmail.com>:

>
>
> 2018-04-05 2:06 GMT+02:00 Mario Lacunza <mlacu...@gmail.com>:
>
>> Hola,
>>
>> a ver entre #1 y #3 tienes un problema de diseño, si estás haciendo un
>> sistema web el cual corre por ende en el servidor q TU debes controlar para
>> q quieres protegerlo? si lo q tu vendes me imagino será el acceso al
>> mismo.. o lo q pretendes es vender el sistema web server completo para q
>> cualquiera lo instale en SU servidor? esto último de nuevo es la peor forma
>> de llevarlo a cabo.
>>
>
> No necesariamente. Puedes distribuir una manylinux wheel compilada con
> Cython. El usuario sólo necesitaría instalar unos pocos paquetes, y a
> correr.
>
> Como te han dicho no hay sistema seguro, sólo demoras el tiempo q a
>> alguien le lleve descompilarlo, para evitarlo, véndele servicios agregados
>> a tu sistema, actualizalo constantemente ofrece soporte especializado, etc
>> hay muchas vias indirectas de evitar q te descompilen el software.
>>
>
> Tampoco hay que exagerar. Dependiendo de cómo de interesante y caro sea el
> proyecto, el código C generado por Cython es de por sí extremadamente
> complejo:
>
>   {
>       double __pyx_temp_scalar = 0.0;
>       {
>           Py_ssize_t __pyx_temp_extent = __pyx_v_marginal_.shape[0];
>           Py_ssize_t __pyx_temp_idx;
>           double *__pyx_temp_pointer = (double *) __pyx_v_marginal_.data;
>           for (__pyx_temp_idx = 0; __pyx_temp_idx < __pyx_temp_extent;
> __pyx_temp_idx++) {
>             *((double *) __pyx_temp_pointer) = __pyx_temp_scalar;
>             __pyx_temp_pointer += 1;
>           }
>       }
>   }
>
> Y esto es antes de pasarlo por GCC. ¿Alguien se atreve a descifrarlo?
> (Solución más abajo)
>
> En uno de mis códigos, elegido al azar, 232 líneas de Python se convierten
> en 29560 de C.
>
>
> Hay otras herramientas, pero no las conozco, yo uso Cython por velocidad,
> pero sé que hay quien lo usa para ofuscar.
>
>
>
> /David.
> ________
> Solución: poner a 0 todos los elementos de un array unidimensional.
> Exactamente, marginal_[:] = 0
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
>
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a