Pregunta

Estoy en la primera experiencia de lanzar mi aplicación Windows y no tengo una señal de cómo debo seguir adelante. Aquí mi pregunta:

Tengo mi propio sitio web ejecutándose en alojamiento. Me gustaría implementar un portal de clientes, por lo que después de recibir un pedido, proporcionaré un nombre de usuario y contraseña por correo electrónico donde los usuarios pueden descargar el código de activación. Sé que esta es una gran pregunta ... ¿cómo proteger mi aplicación contra la duplicación? ¿Sabes cuál es la "mejor" solución para aplicar el sistema de licencia a mi software?

  • ¿Cómo puedo obligar a la aplicación a ser excluida solo en PC específica? ¿Es complejo de lograr?

  • En este escenario, ¿debo crear una nueva compilación para cada usuario para que la clave de activación desbloquee la compilación correcta?

  • Si es así, entiendo que cada perfil tendrá su propio archivo de compilación junto con el código de activación y una especie de información de acuerdo de servicio (es decir, 1 año de actualizaciones gratuitas). Una vez más, veo que es complejo administrar, por cada cambio en la aplicación que necesito compilar, crear y cargar una nueva versión ...? Ok ... mi aplicación en este momento es un archivo EXE simple con algunas carpetas y archivos de configuración XML, pero ¿qué en el futuro ...?

  • ¿Es posible compartir entre todos los usuarios un solo archivo de aplicación que puede activarse utilizando el código de activación del usuario (en este escenario, el usuario tendrá su propio perfil solo para la clave de activación y la información de SA)? ¿Qué pasa con la seguridad? Si alguien comparte el código de activación, supongo que la aplicación se puede desbloquear en cualquier lugar.

  • ¿Debo implementar el portal del cliente en un servidor dedicado (es decir)? No tengo posibilidad de instalar mi propio servidor. ¿Qué opinas sobre el servidor virtual en ISP?

  • ¿Qué pasa con el proceso de facturación y pedido? ¿Crees que una solución comercial de comercio electrónico es una buena opción? Para que estuviera pensando en recibir el pedido por correo electrónico o fax y luego procesar la licencia (aún no sé cómo) y enviar la factura con información para el pago (es decir, transparente). ¿Qué piensas?

  • Si el software le costaría (todavía no sabe el precio), digamos menos de 30 dólares, ¿tiene sentido usar como método de pago un transferente de cable? ¿Qué pasa con compartir-it.com? ¿Es seguro? ¿También manejan el portal de los clientes?

Muchas gracias.

¿Fue útil?

Solución

Iría con un sistema similar a lo que he visto usado por Nod32 (por lo que ya no lo uso, pero aún así sugiero comprar para todos los demás).

La aplicación tiene dos estados: manifestación y completo. Puede usar la versión de demostración para un período de tiempo de 30 meses.

Y cada aplicación tiene una clave de producto, que es diariamente Verificado contra el servidor remoto. Si la verificación falla, la aplicación vuelve a volver a modo de demostración.

Si el servidor de verificación no se puede obtener, muestra un mensaje al usuario de que "verificación del servidor inalcanzable, verifique su conexión o verifique manualmente". Luego intente nuevamente en una hora. Si es para ... digamos ... 3 días no se ha verificado la aplicación. Hace en modo de demostración.

Si el usuario, que tiene problemas de conexión, hace clic en Bubble de notificación, ve una vista que contiene información sobre cómo verificar el manual o el botón para "intentarlo nuevamente".

Para la verificación manual tienes un código generado (basado en sus datos de hardware), que puede ingresar en su sitio web junto con su clave de producto. Y obtener un número para la verificación manual.

mis 2 centavos.

Otros consejos

La forma habitual de evitar que los usuarios simplemente replicen su aplicación en muchas máquinas es 'bloqueo de nodos': en tiempo de ejecución, las verificaciones de la aplicación que ciertos parámetros de la máquina coinciden con los valores registrados en una clave de licencia cifrada o registro de activación. La dirección MAC de Ethernet es un parámetro de bloqueo popular, pero esta no es una buena opción, ya que en algunos sistemas la dirección MAC se puede configurar o falsificar. Una combinación de parámetros como ID de Windows, nombre de la máquina, quizás el nombre de inicio de sesión del usuario, etc. es más segura.

Para emitir una licencia, solicita estos detalles del usuario o que ejecute una pequeña utilidad que los escriba a un archivo que le envían. Luego puede cifrarlos en la clave de licencia, que también puede contener otra información, como un límite de tiempo de prueba o suscripción, información de configuración de características, etc.

Alternativamente, todo esto se puede hacer automáticamente utilizando [activación del producto] [2]. Cuando su aplicación se ejecuta por primera vez se conecta a un servidor de licencias alojado, lo verifica una licencia válida y lee automáticamente los nombres de los parámetros de bloqueo en su host, por lo que luego puede cifrarlos y persistir en un archivo local, luego lee cada uno cada uno. El tiempo se ejecuta después de eso (por lo que la aplicación no necesita conectarse al servidor nuevamente después de la validación inicial). Si sigue la ruta de activación, es mucho más conveniente para usted y sus usuarios.

Independientemente de la ruta que vaya, debe pensar: - Integración con su proveedor/procesador de pago elegido? - ¿Cómo manejar a los usuarios que no tienen conexión a Internet? - ¿Cómo apoyar a los usuarios que desean reubicar su licencia, tal vez porque compraron un nuevo sistema? ¿Puede asegurarse de que solo tengan una copia activa en cualquier momento? (Y también es posible que desee limitar la frecuencia con la que pueden reubicar su licencia). - Si se bloquea en varios parámetros de la máquina, ¿puede su sistema de bloqueo acomodar la parte de actualización del usuario de su sistema, por lo que puede cambiar uno de los parámetros de bloqueo de nodos? - Si el sistema del usuario se bloquea, ¿cómo pueden volver a ejecutar su licencia en otra máquina? - ¿Cómo se emite licencias de prueba? - ¿Cómo se protege contra las personas que intentan piratear la protección de su licencia? - ¿Podría en el futuro desee configurar funciones en su producto, por ejemplo, ofrecer diferentes puntos de precio, o diferentes combinaciones de características a diferentes tipos de usuarios. ¿Puede su sistema de licencia manejar esto?

Todos estos problemas y más, por supuesto, ya han sido considerados y resueltos mediante sistemas de licencias comerciales competentes.

¿Cómo puedo obligar a la aplicación a ser excluida solo en PC específica? ¿Es complejo de lograr?

Puede almacenar su ID de computadora/par de claves en su base de datos.

En este escenario, ¿debo crear una nueva compilación para cada usuario para que la clave de activación desbloquee la compilación correcta?

No. Definitivamente no quieres crear 1000 compilaciones para 1000 usuarios.

Si es así, entiendo que cada perfil tendrá su propio archivo de compilación junto con el código de activación y una especie de información de acuerdo de servicio (es decir, 1 año de actualización gratuita).

Es fácil administrarlo con una herramienta adecuada. Puede 'unir' cada clave a una gama de versión específica de su producto (digamos V1.0.00 - V2.0.00) o especificar el período de validez de la clave (esquema SaaS)

¿Es posible compartir entre todos los usuarios un solo archivo de aplicación que puede activarse utilizando el código de activación del usuario ...?

Sí. Se llama licencias flotantes o de red. El servidor de licencias LAN permite ejecutar un número limitado de instancias de productos en la red corporativa. Este enfoque es ampliamente utilizado por los clientes corporativos.

¿Debo implementar el portal del cliente en un servidor dedicado (es decir)? No tengo posibilidad de instalar mi propio servidor. ¿Qué opinas sobre el servidor virtual en ISP?

Depende de lo que quiere decir con 'propio servidor'. No puede ejecutar demonio/proceso separado en el alojamiento compartido, necesita VPS o servidor dedicado. Pero puede usar las soluciones que ya están presentes en el mercado.

¿Por qué necesita implementar el sistema de activación usted mismo? Y ejecutar servidores usted mismo? Puede parecer mucho más complicado y costoso como parece.

Cloud de activación https://activationcloud.com Proporciona un buen conjunto de características que pueden ajustar las necesidades de los ISV que venden software al usuario doméstico y corporativo. Considere usarlo.

Lea mi pregunta "Un sistema de licencias para mi aplicación (WinForms). ¿Sería esto lo suficientemente seguro? (Dentro de lo razonable)"

Enumeré algunas posibilidades.

Principalmente, noté que quería que el programa solo se ejecute en una PC específica, para la cual utilicé una función que devuelve un código único para cada PC, y requirió que fueran los últimos 5 caracteres de la clave del producto.

Espero que esto haya ayudado. :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top