it-swarm-es.com

Asegurar el plugin de pago de WordPress

Quiero crear un complemento de WordPress, pero también quiero asegurarme de que el complemento solo pueda usarse después de que se haya activado con una clave de serie que debe ser única para cada dominio.

¿Cuál es la mejor manera de hacerlo asumiendo:

  1. Tengo que proporcionar el código fuente real a los usuarios y no puedo tener un tipo de seguridad de VideoPress, que es solo un contenedor de JavaScript para el contenido real que proviene del servidor del complemento.
  2. Quiero asegurarme de que un desarrollador principiante para promediar PHP no podrá someterse a la seguridad fácilmente.
5
Adhip Gupta

Opción 1 - Procesar algunos datos en su sistema

No ubicaría todo el procesamiento del complemento en su propio servidor, sino que seleccionaría una o dos funciones vitales y las mantendré alojadas en su sistema. Luego, requiera una clave API para cada sitio que use el complemento para que puedan comunicarse con su servidor.

Opción 2: cifrar los datos almacenados y requerir una clave de descifrado alojada

Otra alternativa es una configuración de cifrado básica: este es realmente un sistema con el que he estado jugando durante un tiempo, simplemente no me he molestado en implementarlo en ningún lugar. El código en sí mismo (para mantenerse fiel a la GPL) es todo texto sin formato, tal como cabría esperar. Sin embargo, todos los datos almacenados (valores predeterminados, configuración de plug-in, etc.) se cifran antes de guardarse en la base de datos. El truco aquí es que el complemento en el sistema remoto no tiene la clave de descifrado; para descifrar los datos, debe enviar su clave API a su sistema, que luego responde con la clave de descifrado. Esto se puede almacenar en un transitorio (opción temporal) durante un cierto período de tiempo antes de que se vacíe, de esa manera no tendrá un sitio que llegue a su servidor cada 2 segundos durante el tráfico intenso.

Sin embargo, las desventajas de este enfoque podrían superar los beneficios (por lo que todavía no lo he implementado en ninguna parte). En primer lugar, un programador inteligente puede capturar la clave de descifrado y luego ya no necesita su servidor. O simplemente podrían eliminar todos los enlaces de cifrado/descifrado y ejecutarse en texto plano. Esta es la ventaja del código abierto para el usuario y la desventaja para el desarrollador que desea distribuir un sistema gratuito pero restringido.

El otro inconveniente es la dependencia de su servidor. Almacenar una clave en un transitorio elimina parte de la carga de su servidor ... pero si su sitio deja de funcionar durante una hora o dos, entonces todos los sitios que usan su complemento disminuye durante una hora o dos a menos que planee algún tipo de desactivación elegante. Además, significaría que tendría que mantener dicho servidor en funcionamiento indefinidamente si la gente continúa usando su sistema.

Opción 3 - Limitar las características de la versión "gratuita"

Una última opción, y una en la que estoy trabajando activamente en el uso, es dividir el conjunto de funciones y la funcionalidad de su complemento. El núcleo del sistema (IU, características básicas, etc.) está disponible gratuitamente sin registro. Para obtener funciones más avanzadas, los usuarios deben registrar su copia, obtener una clave de activación y luego ingresar esa clave en la interfaz de usuario para completar el proceso; el complemento verifica con su servidor y descarga "complementos" adicionales adicionales al sistema .

La desventaja aquí es que una vez descargado, todo el código ahora descansa en el sitio del usuario y, bajo la GPL, aún pueden redistribuir el paquete completo. La ventaja es que solo depende de su sistema una vez y no requiere ningún tipo de soporte de descarga/procesamiento a largo plazo.


De cualquier manera que decida seguir adelante, se verá afectado por el mantenimiento de algún tipo de API externa en su servidor o por proporcionar la fuente completa del sistema a sus usuarios. Si mantiene alguna funcionalidad en su sistema, casi tiene que garantizar un tiempo de actividad del 100% para que valga la pena. Si va a proporcionar la fuente completa, no hay forma (bajo la GPL) de evitar que otra persona redistribuya su sistema.

4
EAMann

No puede ocultar el código fuente a los usuarios de WordPress ni se le permite limitar la redistribución de su complemento debido a las implicaciones de la licencia.

Está creando un derivado de WordPress con su complemento y sus usuarios tienen el derecho de obtener el origen del mismo y de redistribuirlo libremente (consulte las cuatro libertades en el software libre ).

Suponiendo que WordPress tiene licencia GPLv2 y usted tiene clientes no estadounidenses, debe lidiar con las implicaciones de una violación de la GPL que pueda tener en su producto ("protegido").

Está intentando implementar un bloqueo de proveedor para sus usuarios.

3
hakre

La única forma de tener un complemento distribuido que tenga una licencia segura que cualquier programador medio decente no pueda piratear es ejecutar la funcionalidad principal del complemento en su propio servidor, como Akismet. El usuario debe enviar una solicitud a su servidor que contenga su clave de licencia. Si la clave se comprueba, ejecute el código fuente en su extremo y envíe los resultados.

2
John P Bloch