Pregunta

Tengo una aplicación WinForm # C que utiliza SQL 2005 Express. La aplicación crea pruebas de matemáticas y lectura, y se comercializa a los padres de niños en edad escolar. Los archivos de los padres de compra y descarga SQL que contienen pruebas de mi página web e instalarlas en la aplicación (que se instala en el ordenador de su hijo).

Tengo dos preocupaciones de seguridad de SQL:

(1) Algunos niños pueden no querer las pruebas que aparezcan en su ordenador, de modo que pueden tratar de (a) suprimir la base de datos SQL o (b) desactivar la aplicación cambiando los valores en la base de datos.

Me parece que cualquier persona con SQL Server Management Studio Express puede cambiar fácilmente el contenido de la base de datos.

Por lo tanto, ¿qué se puede hacer para evitar que esto (aparte de recomendar a los padres que no dejan que sus hijos utilizan una cuenta de administrador)?

(2) Mi único ingreso será la venta de las pruebas, así que quiero proteger estos datos sean copiados y compartidos. ¿Cómo puedo hacer esto dado (a) que los archivos deben ser descargados de mi servidor al ordenador del niño y luego se instala y (b) y luego una vez instalado, no son más que residen en el ordenador del niño.

Me parece que cualquier persona con Asistente para la publicación de bases de datos SQL fácilmente puede copiar el contenido de la base de datos.

¿Es posible sólo para permitir mi solicitud para acceder a la base de datos SQL? ¿Es posible restringir todos los demás accedan a él (incluso las personas el uso de cuentas de administrador de Windows)?

Actualmente el script de instalación para mi aplicación crea una nueva instancia de SQL Server Express 2005 sólo por mi solicitud y que utiliza la autenticación de Windows.

He leído varios puestos de seguridad de SQL aquí en Stackoverflow y en otros lugares, pero aún no soy capaz de resolver esto.

¿Fue útil?

Solución

Desde un punto de hackers wonky de vista, los padres se atornillan. Esto es debido a que sus niños tengan acceso físico a la computadora. Teóricamente pueden atacarlo en todas direcciones.

Ahora, vamos a ir con lo que es más probable.

Se identificó que no dar el acceso de administrador niños hace una gran diferencia. Pero si usted está diciendo que está fuera del alcance de la mayoría de las familias, por lo que es SQL Management Studio. Usted puede hacer una apuesta que los niños no van a ir a buscar este e instalarlo.

Sin embargo, al final, que probablemente sería mejor con una buena pasada de moda la ofuscación. En lugar de usar algo como SQL Management Studio, donde existen herramientas disponibles libremente por ahí para modificar y prevenir estas pruebas de aparecer o cualquier otros ataques están disponibles, crear sus propios formatos de archivo y la esperanza de la mayoría de los niños se dan cuando ven binaria gobbledy-gook.

Si van a renunciar a eso, muchos podría renunciar a SQL Express. Dicho esto, los niños son muy ingeniosos y algunos podrían estar dispuestos a seguir instrucciones paso a paso que han buscado en Google para derrotar a su software.

Parece que va a implementar estas pruebas Onto instancias de SQL Express que se encuentran en las máquinas que no están bajo su control. No son las máquinas más.

No quiero decir "no se puede hacer lo que están pidiendo", sino que está pidiendo la manera de evitar que alguien usando herramientas de administrador para derrotar a su software. Creo que mi respuesta es "no se puede". Hay que volver a examinar su diseño o simplemente ir con la idea de que la mayoría de los niños no se van tan lejos.

Otros consejos

Se podría utilizar el cifrado de los datos de prueba.

cifrar y descifrar una cadena

El fallo de este es su aplicación tendría que tener la clave de cifrado / descifrado en su código, por lo que alguien todavía podría tener acceso a él a través de una herramienta de recopilación o algo así reflector.

La verdadera respuesta es que la protección de su aplicación para todo, es casi imposible. Basta con pensar en las grandes empresas y sus técnicas de protección, Microsoft, Adobe, etc ... todos ellos tienen un problema con la piratería.

Además, si su aplicación es lo suficientemente bueno para mucha gente a pirata, lo más probable es tener un buen número de ventas legítimas.

Hasta entonces, yo no se preocupe demasiado, y acaba de tomar unas pequeñas precauciones que no interfieren con el flujo de trabajo demasiado.

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