GARANTIR DESCONTO

Fórum Bloqueio de sistema pela internet #369393

27/03/2009

0

Bom dia galera do delphi.

Seguinte, não sei se já tem um post sobre isso, mas venho perguntar se alguem tem alguma idéia sobre o mesmo.

Exemplo.
Tenho um sistema, quero que todo mês, ou toda semana ao entrar no sistema ele verifique atravéz da internet se pode ser utilizado o sistema ou não. tenho um site que hospeda banco de dados mysql.
Tem como eu fazer uma tabela com o nome do cliente (ou codigo), dai eu coloco se o mesmo pode utilizar o sistema ou não. Toda semana (segunda feira), o sistema se conecta com o banco de dados e verifica se o cliente esta bloqueado ou não, por consequencia bloqueia o sistema.

Alguem utiliza assim?
É uma boa fazer um bloqueio deste tipo?

Fico no aguardo.


Betofrasson

Betofrasson

Responder

Posts

29/03/2009

Rudá

Recomendo você usar um webservice ou algo que trabalhe na net (banco de dados pode ser bloqueado em empresas).
Já a internet é mais livre.

Tente utilizar um webservice (nele vc recebe a chave do cliente verifica na tabela se está valida e depois retorna se pode ser aberto). Você tb pode fazer para não ficar toda hora verificando. A cada uma semana verifica e cria um arquivo dizendo verifiquei essa semana (se passar mais de uma semana sem poder verificar ele bloqueia ou se retornar como inválida a chave pelo webservice).


Responder

Gostei + 0

02/04/2009

Marcosrocha

É bem isso que o Rudá falou. Validação de sistemas sempre foi um problema muito comum entre a comunidade de desenvolvimento de software pois há diversos métodos de verificação e às vezes utilizar-se de apenas um é tornar seu sistema vulnerável a ´crackers´.
Você cria um campo em alguma tabela do banco de dados local (no meu caso Config) com a data da última verificação. Quando a data de hoje foi maior ou igual a uma semana daquela que está gravada no banco de dados local, eu pesquiso no servidor web se existe alguma chave mais nova para mim. Porém, se o cliente sacar este método e resolver cortar a internet do computador para utilizar o sistema de graça, o sistema deve possuir um processo de validação offline onde você adotará uma regra para que caso não conseguiu pegar a chave por mais de uma semana o sistema se autobloqueia. Lógico que se você pega um cara mais ´espertinho´ que tem acesso ao BD ele vai alterar a data para mais distante (igual se faz com muitos softwares hoje) e seu sistema nunca mais verificará a chave tornando-o crackeado, logo pode ser viável gravar a data como uma string criptografada ou em valor numérico no BD, vale a criatividade. :roll:


Responder

Gostei + 0

02/04/2009

Rudá

É isso ai Marcos.

Vale a criatividade, vc pode passar para o seu cliente uma chave.
Essa chave verifica na net e grava em um arquivo no hd uma outra chave2 (nessa segunda chave vc coloca a data ini e fim e a chave1) a chave2 é composta de tudo e depois é criptogravada com algo que volte, ai vai existir duas chaves (a do usuário que passa e a da internet que retorna).
Se for off a pessoa recebe a chave2 por email e joga na pasta.

Essa segunda chave que é o segredo. Você tem que criptogravar em cima de criptografia.

Vamos dizer que a chave1 é ABCDEF (aqui as vezes eu crio um id para o cliente e dou um MD5 ai fica uma chave de 32 letrar e numeros).
Essa chave vc passa para o cliente jogar no programa depois vc grava no arquivo.
Depois vai verificar na net e receber uma chave maior
Essa chave maior vc não pode usar o MD5 pq não tem volta.

Ai vc inventa quebra a chave1 em varias partes coloca a data no meio da chave1 e assim vai inventando.
Depois vc joga uma criptografia que tenha volta depois vc vai juntar a chave1 e comparar com a chave1 guardada tb no arquivo.

arquivo:
chave1 ABCDEF
chave2 AB010109CD01012010EF // AB 01/01/2009 CD 01/01/2010 EF // aqui vc de vez deixar assim vc criptograva. vc tb pode criptogravar a data depois juntar e depois criptogravar novamente, ai vc cria algo seu.


É só inventar e fazer


Responder

Gostei + 0

02/04/2009

Marcosrocha

Você pode inclusive trocar a ordem (fazendo ficar fixa ou aleatoria a partir de um identificador) dos números da data inicial e final.
Ex:
chave1 ABCDEF
chave2 A[color=red:609fbdb32c]0920[/color:609fbdb32c]B[color=orange:609fbdb32c]01[/color:609fbdb32c]C[color=green:609fbdb32c]01[/color:609fbdb32c]D[color=blue:609fbdb32c]10[/color:609fbdb32c]E[color=brown:609fbdb32c]20[/color:609fbdb32c]F[color=indigo:609fbdb32c]01[/color:609fbdb32c]01 // [color=green:609fbdb32c]01[/color:609fbdb32c]/[color=orange:609fbdb32c]01[/color:609fbdb32c]/[color=red:609fbdb32c]2009[/color:609fbdb32c] a [color=indigo:609fbdb32c]01[/color:609fbdb32c]/01/[color=brown:609fbdb32c]20[/color:609fbdb32c][color=blue:609fbdb32c]10[/color:609fbdb32c]
Isso Criptografado pode ser facilmente convertido para hexadecimal, por Exemplo:
O que for Letra, vc pega o código ASCII e converte pra Hexadecimal.
O que for número vc pega 2 dígitos e converte pra Hexadecimal.
Onde:
A = 65 ASCII = 41 em Hexa
B = 66 ASCII = 42 em Hexa
C = 67 ASCII = 43 em Hexa
D = 68 ASCII = 44 em Hexa
E = 69 ASCII = 45 em Hexa
F = 70 ASCII = 46 em Hexa
20 em Decimal = 14 em Hexa
10 em Decimal = A em Hexa (nesse caso precedemos com um 0 = 0A)
No final de tudo, sua chave vai ser:
41091442014301440A4514460101
E para recuperar a chave basta pegar de 2 em 2 e converter de Hexa para Decimal e copiar a posição das datas. Como já afirmamos, vale a criatividade.


Responder

Gostei + 0

02/04/2009

Rudá

É isso ai,

Tem que inventar (criar coisa loucas), quando mas diferene e desordenado os dados mais dificil fica de craquear o programa.


Responder

Gostei + 0

03/04/2009

Rubervaljo

ACho que uma boa ideia também é usar um campo que o delphi permite chamado BLOB é um formato de campo que eu desconhecia até um certo tempo
ele grava informações em STREAM ou seja irreconheciveis por qualquer um, ou seja apenas usando o comando no código fonte que o proprio sistema le e entende ´um certo tipo de linguagem de máquina´ onde vc pode designar para guardar essas informações que podem ser atualizadas pela internet ou mesmo off-line mas como, para maior segurança sua do seu sistema disponibilize downloads de talvez arquivos atualizadores, ou ´exe´ atualizador com uma função de que se a data gravada no tal campo formato BLOB seja menor que a designada no atualizador ele atualiza para tantos dias mesmo como será designado no fonte, assim não tem como seu cliente saber como atualiza essa tal data o ´exe´ terá só um botão ATUALIZA LICENÇA ou algo do tipo e nada mais. até hoje não achei modo de crackear isso, e menos ainda de descobrirem como funciona procurem sobre o campo BLOB é muito legal...ultimamente estou usando para gravar as colunas do DBGRID meus clientes solicitaram que gostariam de movimentasr o tamanho e as colunas de um grid ´personalizar´ diretamente dizendo usando um campo Blob no cadastro de usuário para cada GRid que ele queira movimentar quando o usuario loga no sistema que ele entra no form cada form carrega o Grid como está no cadastro dele
assim o sistema não tem lentidão e consigo suprir a necessidade do meu cliente....
QUe texto em rss...espero ter ajudado em algo

qualquer coisa

MSn= desenvolvimento@interativasistemas.com
MSN= rb.danilo@hotmail.com

abraços...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar