Proteção contra espertinhos...
Moderador: Moderadores
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Proteção contra espertinhos...
Pessoal, estou com um grande desafio (pelo menos para mim!).
É o seguinte: tenho um sitema em que faço o licenciamento anual. Esse sistema vai personalizado com nome/cpf do cidadão. Cada licença é para apenas um cpf. Ocorre que, alguns cidadãos querem utilizar o sistema para controlar também o cpf da esposa, do pai, do amigo, etc, mas quer economizar na licença.
Então, o que ele faz: registra as entradas e saídas do seu cpf e faz o backup (disponibilizado pelo próprio programa) e, em seguida, pelo próprio programa, restaura um backup anterior em que ela havia registrado as ocorrências do cpf do seu pai, por exemplo. Insere as novas movimentações e faz novo backup. Pronto, já pode restaurar o backup do seu tio e repetir todo o processo, para quantos quiser. O seu único trabalho vai ser controlar qual backup pertence a quem. Com isso vai pagar uma só licença.
O tal backup nada mais é que um arquivo .zip que contém os dois .dbf compactados.
Agora pergunto aos colegas: alguém pode me dar uma luz de como posso bloquear isso?
Antonio Carlos
É o seguinte: tenho um sitema em que faço o licenciamento anual. Esse sistema vai personalizado com nome/cpf do cidadão. Cada licença é para apenas um cpf. Ocorre que, alguns cidadãos querem utilizar o sistema para controlar também o cpf da esposa, do pai, do amigo, etc, mas quer economizar na licença.
Então, o que ele faz: registra as entradas e saídas do seu cpf e faz o backup (disponibilizado pelo próprio programa) e, em seguida, pelo próprio programa, restaura um backup anterior em que ela havia registrado as ocorrências do cpf do seu pai, por exemplo. Insere as novas movimentações e faz novo backup. Pronto, já pode restaurar o backup do seu tio e repetir todo o processo, para quantos quiser. O seu único trabalho vai ser controlar qual backup pertence a quem. Com isso vai pagar uma só licença.
O tal backup nada mais é que um arquivo .zip que contém os dois .dbf compactados.
Agora pergunto aos colegas: alguém pode me dar uma luz de como posso bloquear isso?
Antonio Carlos
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Proteção contra espertinhos...
Acredito que um arquivo auxiliar armazenando o hash do CPF "autêntico" seja a solução.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Proteção contra espertinhos...
Note que o esquema do cliente com esses back-ups é legítimo e não vai contra o uso do programa. E se consta em algum contrato, não tem a menor validade. É o programa que precisa ficar "vinculado" a este e/ou àquele CPF. Se no programa nada consta nesse sentido, o usuário está absolutamente certo. Afinal, os dados são dele. Assim, ele pode fazer com os arquivos de dados o que bem entender.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Re: Proteção contra espertinhos...
AlaminoJunior,
Maligno,
Poderia me detalhar como seria isso?Acredito que um arquivo auxiliar armazenando o hash do CPF "autêntico" seja a solução.
Maligno,
Considero como se eu vendesse o ingresso para o cidadão A assistir um filme. Ele assiste e dá um jeitinho e repassa o ingresso para o cidadão B também assistir o mesmo filme...Note que o esquema do cliente com esses back-ups é legítimo e não vai contra o uso do programa
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Proteção contra espertinhos...
Seria o que o Maligno complementou
Eu penso que pode ser da seguinte forma:
A sua aplicação ao ser iniciada, busca no arquivo auxiliar (que pode ser um dbf) o número do CPF. Se este número coincidir com o CPF digitado pelo usuário, o acesso é permitido.
Só um detalhe: note que eu mencionei o uso de hash.
Então você pega o CPF "autêntico", submete o danado ao HB_MD5(), ou o HB_CRYPT(), ou os dois, e armazena o resultado disso no arquivo auxiliar, e nunca o próprio número.
Lembrando que antes disso tudo, talvez precise deixar clara essa política com o cliente, para prevenir um possível constrangimento.
. Restringir o aplicativo a um único ou vários CPF´s, usando um arquivo auxiliar com o hash dos mesmos. Pois do contrário o cara faz o que bem entende mesmo.É o programa que precisa ficar "vinculado" a este e/ou àquele CPF
Eu penso que pode ser da seguinte forma:
A sua aplicação ao ser iniciada, busca no arquivo auxiliar (que pode ser um dbf) o número do CPF. Se este número coincidir com o CPF digitado pelo usuário, o acesso é permitido.
Só um detalhe: note que eu mencionei o uso de hash.
Então você pega o CPF "autêntico", submete o danado ao HB_MD5(), ou o HB_CRYPT(), ou os dois, e armazena o resultado disso no arquivo auxiliar, e nunca o próprio número.
Lembrando que antes disso tudo, talvez precise deixar clara essa política com o cliente, para prevenir um possível constrangimento.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Proteção contra espertinhos...
Nada a ver com o caso. Não foi um bom exemplo. Se fosse possível (o ingresso é inutilizado), seria ilegal, claro. Mas o seu caso é muito diferente. Por menos que você goste, os dados são do cliente. Sempre serão. É propriedade dele e ele pode usá-los do jeito que bem entender. Nem por contrato você pode mudar isso. Seria ilegal apenas se ele modificasse o programa.Considero como se eu vendesse o ingresso para o cidadão A assistir um filme. Ele assiste e dá um jeitinho e repassa o ingresso para o cidadão B também assistir o mesmo filme...
O que pode ser feito é isso o que você quer: criar um vínculo no programa. Algum tipo de trava que inviabilize o esquema que ele usa.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Re: Proteção contra espertinhos...
Maligno, pode ateh nao ter sido um bom exemplo, mas foi o que me veio naquele momento. Mesmo assim, acho que deu para entender. Bom, acho que encontrei a solucao: em vez de criar um novo arquivo de backup a cada solicitacao, criarei sempre o backup com o mesmo nome de arquivo, porem com uma senha aleatoria e guardada no arquivo auxiliar de forma criptografada. Se nao resolver, vai dificultar...Nada a ver com o caso. Não foi um bom exemplo
Obrigado a todos
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Re: Proteção contra espertinhos...
Carlos, eu faco assim:
Uso o backup tb em meu sistema mas apenas o sistema com o CNPJ (o cpf no seu caso) e a licenca poderah abrir o arq. zip, ou seja, uso uma senha gerada pelo sistema baseado no cnpj + cod.aleatorio, com isso c qualquer outro sistema (meu eh claro) tentar abrir os dbfs isso n serah possivel. N sei c entendi o seu dilema mas eh o q faco aqui.
Marcos Roberto
Uso o backup tb em meu sistema mas apenas o sistema com o CNPJ (o cpf no seu caso) e a licenca poderah abrir o arq. zip, ou seja, uso uma senha gerada pelo sistema baseado no cnpj + cod.aleatorio, com isso c qualquer outro sistema (meu eh claro) tentar abrir os dbfs isso n serah possivel. N sei c entendi o seu dilema mas eh o q faco aqui.
Marcos Roberto
Marcos Roberto
NetService Software
NetService Software
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Re: Proteção contra espertinhos...
Marcos, como você no teu programa, se o cidadão tentar importar um backup em que a senha não confira com o esperado pelo programa? Não vai gerar algum tipo de erro? Você utiliza o HB_UnZipFile para isso?
Grato
Antonio Carlos
Grato
Antonio Carlos
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Re: Proteção contra espertinhos...
Uso hbzip. Sim, o sistema soh recupera o banco de dados (backup) com a validacao do arq. de backup q eh feito conforme descrevi no post acima. Ou seja, o sistema n apresenta erro ele apenas diz q o backup n eh do sistema corrente.
Marcos Roberto.
Marcos Roberto.
Marcos Roberto
NetService Software
NetService Software
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Re: Proteção contra espertinhos...
Marcos, sem querer abusar, já abusando: você poderia informar a linha de comando para efetuar o backup e restaurá-lo com o HBZIP? O hbzip é xHarbour ou Harbour? Ou é um programa externo?
Antonio Carlos
Antonio Carlos
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Proteção contra espertinhos...
Olá Carlos,
A hbzip pode usar com Harbour e xHarbour. No link abaixo tem exemplode Back-up e Retore do mesmo, caso não esteja usando lib graficas, é só remover a parte grafica que ela compila tranquilamente. E a lib hbzip faz parte da Contrib do x[H]arbour.
viewtopic.php?f=43&t=6757
A hbzip pode usar com Harbour e xHarbour. No link abaixo tem exemplode Back-up e Retore do mesmo, caso não esteja usando lib graficas, é só remover a parte grafica que ela compila tranquilamente. E a lib hbzip faz parte da Contrib do x[H]arbour.
viewtopic.php?f=43&t=6757
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Re: Proteção contra espertinhos...
Caros, estou quase lá... Quando a senha do arquivo compactado não confere, o programa não está restaurando (é isso que preciso), mas a mensagem ao usuário é como se tivesse ocorrido tudo certo. Vejam o código abaixo:
Ou seja, restaurando ou não (quando há divergência na senha) a mensagem é sempre a mesma ("Restauração realizada com Sucesso").
Alguma dica?
Código: Selecionar todos
if msgyesno("Atenção!! Esse processo é totalmente irreversível! Todos os seus dados atuais serão perdidos! Tem certeza que deseja fazer o retorno do Backup? ","Aviso do Sistema")
if HB_UNZIPFILE(arq,,,xsnh, , )
PlayOK()
MsgInfo("Restauração Realizada com Sucesso!","Aviso do Sistema")
else
MsgInfo("ERRO: Senha do Backup não confere!","Aviso do Sistema")
endif
endifAlguma dica?
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Re: Proteção contra espertinhos...
Kra eh soh uma ideia mas vc pode pegar a data de um arq. seu ou o tamanho dele e fazer a comparacao depois do processo de restauracao, caso o arq. seja tenha sido alterado poderia se dizer q foi feito a restauracao. Eh logico q n eh um processo 100% mas c vc pegar um arq. mais usado a margem d erro diminui muito.
Marcos Roberto
Marcos Roberto
Marcos Roberto
NetService Software
NetService Software
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Re: Proteção contra espertinhos...
Marcos, é uma boa dica!
Esse retorno .t. para uma senha divergente não seria um bug?
Antonio Carlos
Esse retorno .t. para uma senha divergente não seria um bug?
Antonio Carlos
