Rotina de Senha.
Moderador: Moderadores
-
diogenes_varela
- Usuário Nível 3

- Mensagens: 206
- Registrado em: 04 Nov 2006 19:33
- Localização: Brasília - DF
Já eu dou sempre atenção ESPECIAL aos níveis de senha. Não é apenas um critério para liberar para esse ou aquele usuário, mas garantir a integridade e segurança dos dados, principalmente em sistemas comerciais.Eu particularmente não gosto pq complica mesmo... pode cadastrar, mas não pode excluir... pode excluir, mas não pode cadastrar... um saco....
Até por questão de lógica, senão vira casa-de-mãe-joana...
Os computadores não sabem o que fazem. Nós, na maioria das vezes, também não...
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinhos
Tempos atras eu disponibilizei um menu em 5win para os amigos que queriam migrar do DOS pra Windows paulatinamente.
O sistema de menus er baseado em um DBF onde os menus tinham suas opções niveldas como um plano de contas. Este menu era dinamico e nao precisava ser programado na interface pois mesma reconhecia as mudancas e pronto.
Na verdade era um beta-teste para o sistema de seguranca de meu sistema que hoje conta com flag de nivel de status para cada opção, flags de inclusão, exclusão, edição, impressão em cada opção, flag de desativação de opção e flag de liberação para o usuário.
Quando o usuário é cadastrado no sistema uma copia do menu principal é copiado para ele e ai tenho o penoso trabalho de liberar opções que seu nivel nao permite, exemplo, um usuario de nivel de acesso 2 necessita usar uma opção de nivel 3 ai eu libero ela na estrutura de seu menu e o resto so é liberado até o seu nivel.
em suma usar um arquivo externo é sempre melhor do que programar no sistema e para auxiliar a segurança, criptografar o conteudo dos campos usando funções como da SIX.
Tempos atras eu disponibilizei um menu em 5win para os amigos que queriam migrar do DOS pra Windows paulatinamente.
O sistema de menus er baseado em um DBF onde os menus tinham suas opções niveldas como um plano de contas. Este menu era dinamico e nao precisava ser programado na interface pois mesma reconhecia as mudancas e pronto.
Na verdade era um beta-teste para o sistema de seguranca de meu sistema que hoje conta com flag de nivel de status para cada opção, flags de inclusão, exclusão, edição, impressão em cada opção, flag de desativação de opção e flag de liberação para o usuário.
Quando o usuário é cadastrado no sistema uma copia do menu principal é copiado para ele e ai tenho o penoso trabalho de liberar opções que seu nivel nao permite, exemplo, um usuario de nivel de acesso 2 necessita usar uma opção de nivel 3 ai eu libero ela na estrutura de seu menu e o resto so é liberado até o seu nivel.
em suma usar um arquivo externo é sempre melhor do que programar no sistema e para auxiliar a segurança, criptografar o conteudo dos campos usando funções como da SIX.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Aí se o espertão abrir no DBU e colocar tudo "S", ele acessa tudo. Muito fraco este conceito.janio escreveu:Se o cidadão tem acesso ao CADASTRO DE PRODUTOS, por exemplo, gravo no CAMPO (flag) "S". Se não tem, gravo "N".
Eu uso parecido também, mas gravo em txt criptografado a senha e os direitos de cada usuário, e para não ficar dando mensagens do tipo "você não tem permissão" eu já retiro do menu alguns itens, mas mesmo assim só se o acesso for negado por completo.
O cara pode cadastrar produto, mas não pode alterar preço de venda por exemplo, aí tem que ter acesso ao menu, mas bloquear esta funcinalidade do preço. Mas também é simples, eu faço algo assim:
if nao_pode_alterar_preço
pedir_senha_de_alguem que_pode()
endif
Aí o cara entra com uma senha e após terminar esta tarefa quem continua logado é o fulano original.
E por aí vai...
É meio complicado isso mesmo. Existem muito jeitos.
Só posso garantir que é muito mais seguro por usuário do que por nível, pois só assim podemos gravar o histórico (log) de operações em qualquer atividade no sistema. E isso acaba caindo no tal auditor, que comentamos em outro tópico.
Falou, abraços.
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Pra mim o problema não está no sujeito ter acesso ao conteúdo. O problema é ele alterar seus privilégios. Eu uso texto simples. Está tudo ali pro sujeito ver. Mas se alterar uma vírgula, o CRC32 (modificado) de autenticação já não vai bater e o arquivo ficará inutilizável até que ele reverta o que alterou ou algum outro usuário, mais privilegiado recadastre o sujeito e reconfigure tudo. É o mesmo esquema que eu uso no arquivo de licenciamento. O cliente vê ali a data em que o pograma ser auto-bloqueará. Se alterar alguma coisa,... Dançou!gravo em txt criptografado a senha
Esse mesmo esquema de certificação também pode ser implementado num banco de dados. Basta reservar um campo para armazenar essa certificação.
Mais um detalhe: eu não gravo senha. Só gravo o hash resultante do nome+senha+"alguma coisa".
[]'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!
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
A senha em sí também não gravo. Eu usava a função crypt(). Atualmente uso md5 no xHarbour.Maligno escreveu:Mais um detalhe: eu não gravo senha. Só gravo o hash resultante do nome+senha+"alguma coisa".
Mas o nosso processo é parecido, só que eu criptografo os dados e depois gravo no txt, você faz o contrário pelo que entendi, grava e depois gera a chave.
Só o que não dá é simplesmente ter um "S" ou "N" num dbf...
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Até pode ter, mas se o dado está visível, deve-se criar um certificado que permita a verificação da integridade do conteúdo. Sem isso, realmente não dá. Aí tem que encriptar.Só o que não dá é simplesmente ter um "S" ou "N" num dbf...
[]'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!
Grande Stanis,Stanis Luksys escreveu:Só o que não dá é simplesmente ter um "S" ou "N" num dbf...
Quis ser o mais didático possível, claro que essas informações são todas criptografadas, além do que meus DBF's são todos protegidos com senha. Só acessa o DBF via sistema e olhe lá...rsrsrs
:* -:]
Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Legal. Como você fez este tipo de proteção?janio escreveu:além do que meus DBF's são todos protegidos com senha.
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Stanis,
Vou explicar senão vira confusão.
Entenda:
1-) Nos meus sistemas onde utilizo BD MySql, o Banco de Dados é todo protegido com senha, certo??? Nenhuma dúvida???
2-) Para os sistemas que ainda estão com acesso via DBF, há inúmeras funções que IMPEDEM o acesso a esses dados pelo Excel ou DBU's da vida.
Para esse segundo caso, em o usuário sendo um programador, até que dá pra burlar essa 'proteção'. Já para um usuário leigo (99,99% dos nossos clientes), duvido que ele consiga abrir o banco de dados e modificar o "N" pelo "S" como vc falou.
Entendido?
:|< :f #-)
Jânio
PS: Se formos considerar o possibilidade de o usuário abrir o DBF pelo DBU/Excel, toda a consistência do banco de dados vai pro espaço.
Vou explicar senão vira confusão.
Entenda:
1-) Nos meus sistemas onde utilizo BD MySql, o Banco de Dados é todo protegido com senha, certo??? Nenhuma dúvida???
2-) Para os sistemas que ainda estão com acesso via DBF, há inúmeras funções que IMPEDEM o acesso a esses dados pelo Excel ou DBU's da vida.
Para esse segundo caso, em o usuário sendo um programador, até que dá pra burlar essa 'proteção'. Já para um usuário leigo (99,99% dos nossos clientes), duvido que ele consiga abrir o banco de dados e modificar o "N" pelo "S" como vc falou.
Entendido?
:|< :f #-)
Jânio
PS: Se formos considerar o possibilidade de o usuário abrir o DBF pelo DBU/Excel, toda a consistência do banco de dados vai pro espaço.
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
-
Stanis Luksys
- Colaborador

- Mensagens: 1329
- Registrado em: 18 Jun 2005 03:04
- Localização: São Paulo
- Contato:
Legal, mas você disse que a senha era no DBF. Me interessei pelo fato, pois nunca fiz isso.
Quanto a outras formas de proteger, eu conheço bem aquela que altera um byte do cabeçalho do arquivo e o deixa corrompido, depois volta ao normal. Uma gambiarra sem tamanho... Mas funiona.
Eu num protejo os DBFs de nenhum jeito.
Conscientencia o sistema tem por sí próprio, se alguém alterar o DBF diretamente, vai ter que alterar sempre em 2 lugares, pois aqui somos todos viciados em segurança, não há uma única rotina do sistema que não grave os dados em pelo menos dois locais. E ainda assim vai dar pau no auditor...
Falou!
Quanto a outras formas de proteger, eu conheço bem aquela que altera um byte do cabeçalho do arquivo e o deixa corrompido, depois volta ao normal. Uma gambiarra sem tamanho... Mas funiona.
Eu num protejo os DBFs de nenhum jeito.
Conscientencia o sistema tem por sí próprio, se alguém alterar o DBF diretamente, vai ter que alterar sempre em 2 lugares, pois aqui somos todos viciados em segurança, não há uma única rotina do sistema que não grave os dados em pelo menos dois locais. E ainda assim vai dar pau no auditor...
Falou!
Stanis Luksys
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
sites.google.com/hblibs
Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
-
diogenes_varela
- Usuário Nível 3

- Mensagens: 206
- Registrado em: 04 Nov 2006 19:33
- Localização: Brasília - DF
Para evitar que meu banco de dados de senhas seja aberto via DBU/Excel eu salvo as variáveis em um arquivo, com qualquer extensão.
Para conferir a senha, o programa abre o arquivo, carrega as variáveis, aí é só comparar a senha digitada.
Para criar nova senha, faz o inverso. Sempre funcionou.
Para conferir a senha, o programa abre o arquivo, carrega as variáveis, aí é só comparar a senha digitada.
Para criar nova senha, faz o inverso. Sempre funcionou.
Os computadores não sabem o que fazem. Nós, na maioria das vezes, também não...
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9
E disse ao Programador: "Todos os teus programas terão erros e irás corrigi-los até ao fim dos teus dias". Gen. 1:9

