FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Seguridad de un sistema
Bueno saludos a todos
les comento que cree un sitema para el manejo de impuestos, el cual puede ser utilizado por cualquier empresa, me di modos de generar una clave de registro, la cual es única para cada empresa, vale decir no me pueden repetir el numero de registro de una empresa x a una empresa y, esta empresa y tendrá su propio registro, el problema es que mi software lo doy gratis para que puedan verlo o probarlo durante un mes y luego se bloquea, esto hasta que paguen por el registro, pero me di cuenta que es posible desinstalar el sistema y volverlo a instalar n veces y no tener la necesidad de cancelar el registro, la pregunta ¿como hago para que la primera vez que se instala mi sistema en la computadora me deje un rastro para no poder volver a instalar o utilizar el sistema y me mande un mensaje de que el periodo de prueba concluyo? agradecere de antemano su ayuda |
#2
|
||||
|
||||
Hola cjmatador,
Hay maneras de conseguir esto... La más recomendada es dejar una clave en el registro de Windows. Al instalarse el sistema compruebas de que exista la clave, si ya existe... se trata de que el sistema ya había sido instalado en una ocasión. Otra manera es crear un archivo oculto en algún directorio. En este archivo puedes guardar la fecha de instalación si deseas... El proceso es análogo cuando se instala, se crea el archivo si no existe... en otro caso da por válido el hecho de que ya había sido instalado. Claro está que esto no sirve si se aplica un formateo... pero son opciones. O si deseas, (tendrías que comprobar si es legal) puedes hacer que cada vez que el sistema se instala te envie un correo o algo así hacia ti. De este modo tu puedes saber cuantas veces ha sido instalado. O puedes hacer que la instalación pida una especie de validación a través de internet. No creo que te resulte demasiado complicado hacer esto, sabiendo que ya cada empresa tiene una clave que la identifica. No estoy muy puesto en estas cosas pero al menos puedo darte algunas ideas. Saludos, |
#3
|
||||
|
||||
Aqui tienes varias opciones sencillas y usadas a la vez por programs comerciales:
Utilizar el registro de windows. Puedes crear una clave con un nombre que no diga mucho sobre lo que hacer así como su valor. Al expirar, anotas algo en esa clave y de esa form checas cada vez que arrancas que esa clave no tenga el valor de expiracion. Utilizar un archivo oculto o bien con nombre x almacenado en la carpeta de tu programa, le puedes poner un nombre raro, yo una vez usé "display.dll" y aplicas el mismo método. Si el archivo existe, ya expiró. O bien poner datos x dentro del archivo como por ejemplo la fecha de instalación codificada. Al instalar tu programa creas el archivo y pones la fecha. Al iniciar el programa busca primero el archivo, si no está se bloquea. Si está pero no contiene una fecha válida (recuerda que está codificada) se bloquea. Puedes poner una clave en el registro que indique que ya se había instalado para que no permita una reinstalación. Obviamente tienes sus puntos débiles pero se supone que solo tu sabes que tu programa checará todo esto. EDITADO: Telepatía???? Justo cuando le dí "Guardar" encuentro el post de Delphius, hasta pense que se habia duplicado.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#4
|
||||
|
||||
Jeje
Tu la explicaste mejor. El meollo del problema de cjmatador es que sus sistemas ya están operativos. Por lo que deberá tener presente este hecho si desea modificar su sistema. Uno puede decir "¿Pero que problemas pueden haber si sólo le añado eso? Si no toco nada más.." pero en ocasiones salta algo que no habíamos contemplado. En fin ya verá nuestro compañero como lo realiza. Saludos, |
#5
|
|||
|
|||
entiendo lo que quieren decir pero resulta que no se acceder al registro de windows, como puedo hacer ello? ,
y si creara un archivo x en un directorio bueno crearlo oculto no se, pero averiguo, en ambos casos que ocurre si el cliente o empresa decide pagar el registro o clave, el archivo o el registro de windows no le dejará instalar el sistema nuevamente. como preveemos ello |
#6
|
|||
|
|||
les comento que deje una instruccion para validar si el software ya fue instalado , es algo asi
{comprobar a} if a=true then begin {ingresa al sistema} end else showmessage('Software ilegal'); tambien tengo el form1 en el cual pido login y password de usuario, entonces si yo valido el uso legal del software en el form1, no permitire que el usuario pueda registrar el software, creo que debo validar en el form1 y permitirle el ingreso y solo habilitar la funcion de registro del software que opinan? ha gracias |
#7
|
||||
|
||||
Cita:
(1º) Mejor que en lugar de sacar un mensaje como este, saques una pantalla con un mensaje un poco más amigable; A veces a un cliente "legal" que ha tenido algun problema le puede aparecer una pantalla como esta y le puede sentar mal que además de funcionar mal el programa le llamen "Pirata". (2º) En la misma pantalla (con un mensaje más amigable referente al "periodo de prueba" o a "posibles problemas con el registro"), es bueno que des opción a Ingresar un número de activación correcto. (te lo explico en el punto siguiente). Cita:
Independientemente de si guardas en el registro o creas un fichero, en la pantalla en que avisas de que no se puede acceder. Puedes dar opción a colocar un número de Activación. Si ese número de activación es correcto, se elimina la clave de registro o el fichero oculto. Por lo tanto cuando a un usuario se le cumple el plazo, le aparecerá esa pantalla de registro. Te tendrá que llamar o enviar E-mail para poder continuar. Una vez que hayan registrado el producto, tú les envía el número de activación correcto y con eso podrán seguir utilizando el programa.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Registro en BBDD
Buenas!
En un sistema que habia hecho con ese tipo de distribución (a prueba) lo que hice fue que el programa guarde un dato en un registro de una tabla del sistema en su primera utilización, una especie de marca con la fecha cifrada. Con esto me aseguro que la manera que tendran de poder reinstalar el programa sea regenerando el campo cifrado. Si ademas esto lo comparas con el registro... sera muy dificil que puedan prolongar la utilización. Saludos! |
#9
|
|||
|
|||
mr_pascale
como hago eso de acceder a una tabla del sistema, ya me imagino lo que debo hacer pero dame un ejemplo de tabla del sistema donde esta ubicada, y debe ubicarse siempre en el mismo lugar verdad para poder acceder a ella y que no me mande un error, ahora ten en cuenta que algun usuario podria no tener acces en su equipo agradecere me aclares ello |
#10
|
||||
|
||||
Todo ocurre en el primer uso
A ver... Como base los usuarios (todos) deben acceder al programa validando su usuario y contraseña. En mi caso, tenía guardado un registro de un cliente genérico, en el cual uno de los campos estaba vacio antes del primer uso. Cuando cualquier usuario se trataba de loguear por primera vez, no solo generaba el log de ingreso sino que ademas si el campo esta vacio este se llenaba con el daqto cifrado con la fecha actual. Este dato es comparado desde el primer uso haciendo diferencia de fechas si esta supera los 30 días, entonces sale.
Recordá que al ser un cliente generico... no se le puede dar la opción de borrarlo. Espero que se entienda algo Saludos |
#11
|
|||
|
|||
mr pascale
no olvides que pueden borrar mi base de datos y luego reinstalar el programa, sabes como desde codigo puedo ocultar un archivo, es decir creo un archivo en una region x del directorio c y luego quiero que se muestre oculto gracias por todo si |
#12
|
||||
|
||||
Importa???
cjmatador, si eliminan la base de datos, entonces han trabajado un mes para nada. Si este fuese un software de calculo, le pondría otros controles, pero sabiendo que es un sistema contable, tendrían que cargar una y otra vez los clientes, los proveedores y los articulos cada vez que reinstalen la aplicación. Tampoco les serviría un dump de los datos ya que este llevaría consigo la marca de fecha que vos implementaste.
Saludos |
#13
|
|||
|
|||
bueno gracias a todos creo que podre solucionar mi problema, creo un archivo con un nombre similar al de alguno del sistema y lo pongo en una carpeta de sistema, luego lo oculto, en ese archivo guardo la fecha de instalacion, y en mi programa luego de verificar login y pasword, valido esta fecha, si expiro mando automaticamente al form de registro
gracias ok bye |
#14
|
|||
|
|||
bueno saben tengo otro pequeño inconveniente,
toda la base de datos que genera el cliente en el uso rutinario del sistema, para cearle un backup, simplemente copio la base de datos donde me indique el usuario, en que forma podria llevar dicha base primero a comprimirla en winrar y ponerle una clave. |
#15
|
||||
|
||||
Cita:
sugiero que realices una búsqueda en los foros. Creería que ya alguien comentó algo parecido. Por lo menos se que existen componentes que comprimen archivos, tanto en zip como en rar. No se si serán de pago... lo puedes localizar aquì. Saludos, |
#16
|
|||
|
|||
delphius amigo
una consulta sabes algo de como acceder al registro de windows para guardau una fecha digamos la de instalacion de mi programa, pero quisiera hacerlo desde el sistema que hice, ya validare que solo en la primera vez que se entra registre dicha fecha y si existe ese dato no lo actualice comprendes te agradecere muchisimo un abrazo |
#17
|
||||
|
||||
Hola cjmatador. Prueba un código similar a este:
EDITADO: En este caso la fecha se guarda directamente sin condificar. Oviamente, tu tendrás que implementar los métodos para mejorar la seguridad de esta pequeña función. saludos. Última edición por Chris fecha: 29-01-2008 a las 22:16:47. |
#18
|
|||
|
|||
Muy interesante, las soluciones brindadas por los compañeros, en cuanto al registro, es uno de los más comunes, aunque tienes que poner un clave que no este relacionada al programa es decir que los puedas despistar, ya que hay personas que se meten al regedit, y buscan palabras semejantes al programa y pues terminan encontrando el numero de serie.
Mediante la generacion de un archivo también es interesante, aunque si me voy por los extremos con un programa que rastree las funciones apis de apertura, lectura y cierre de ficheros, pueden sacar el archivo donde se encuentra el serial, solo es para tener en cuenta. Puede ser en linea (on-line), en internet, también es otra forma, generas un archivo para el usuario que contenga una llave publica, y del lado de tu server un privada similar al mecanismo de correo, esto me parece seria bastante seguro saludos
__________________
"La información tiene más valor cuando se comparte" |
#19
|
||||
|
||||
Hola, el asunto sobre la seguridad de las aplicaciones no debe ser tomado a la ligera, sobre todo si se tratan de sistemas críticos y/o que se sabe (o se tiene una noción) de que puede ser usado en una amplia parte del mercado.
En fin, dependerá de muchas cosas el nivel de la protección: 1. El tipo de sistema. 2. El esfuerzo, tiempo, dinero, etc que estamos dispuestos a invertir en ello. 3. La restricciones operativas y/o legales que afectan no sólo al sistema sino al negocio. 4. El nivel de conocimiento sobre el area de seguridad que tengamos. 5. Los posibles requisitos/necesidades del cliente. 6. Pedazo de la torta del mercado que podemos comer o acaparar. 7. Relacionado con el anterior: como trabaja la competencia. 8. Las ganas de quitarle más o menos dinero al cliente. Que aunque no lo crean, en ocasiones uno debe ponerle cosas y cobrar en base a la cara del cliente. 9. Facilidad y frecuencia de uso del sistema. 10. La cultura infomática del cliente y/o usuario final. No siempre el usuario final es el cliente. Además si la persona no es demasiado entendida en las PCs el recibir ese cuadro de registro y/o pedido de clave puede confundirla. 11. Las disponibilidades técnicas del cliente. Supongamos que el cliente no posee acceso a internet y nuestro sistema necesita hacer la registración y/o validación a través de internet ¿Como le ofrecemos ayuda y asistencia?¿Cómo creeen que reaccionaría el usuario? 12. Nuestra forma de hacer negocio. 13. Etc... En fin... podría seguir. Esto no es una decisión que tomar en 2 minutos. Saludos, |
#20
|
||||||||||||
|
||||||||||||
A reserva de salir peleado con el querido Delphius me permito hacer algunas acotaciones toda vez que estos comentarios seguramente son vistos por muchos desarrolladores empresarios bisoños los cuales me parece pueden irse del "lado oscuro" de la fuerza si lo toman al pie de la letra.
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
[/quote] Cita:
Cita:
Cita:
Cita:
Señores y sobre todo los recien llegados a esta jungla de los negocios: "NO SOMOS NI LOS UNICOS NI LOS MEJORES"...y con esta mentalidad hay que hablar con nuestros clientes y hacer las cosas. No perdamos tiempo con nimiedades de que "me lo van a piratear". Como si fuera tan difícil ver un sofware, usarlo, ver lo que hace y luego reproducirlo y mejorarlo, vaya en muchos casos ni los fuentes se necesitan. Lo que hay que hacer es respaldar el producto con otras cosas: soporte, documentación, asistencia en línea, etc. No caigamos en el error de pensar que somos los non plus ultra de Delphi y que nuestro código es oro. ¿A cuantos no les ha tocado ver código de su competencia o bien otra empresa y descubrir que no se le entiende por ningún lado? Igual puede pasarle al competidor con oportunidad de ver tu código...y el resultado siempre será casi lo mismo: "mejor volverlo a escribir desde cero". Cita:
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Seguridad | Lupita | Varios | 6 | 29-08-2007 03:38:54 |
Seguridad en asp.net | karocs | .NET | 3 | 07-02-2007 16:41:40 |
[Seguridad] Nuevos agujeros de seguridad en varios sistemas Windows ... | kinobi | Noticias | 1 | 16-09-2003 10:42:54 |
Como Puedo Crear un Sistema de Seguridad de Usuarios basado en los Roles de Interbase | hromero | Firebird e Interbase | 3 | 16-05-2003 21:57:28 |
Seguridad de mi sistema | cmgenny | Varios | 2 | 07-05-2003 21:27:08 |
|