DBF x Segurança
Moderador: Moderadores
DBF x Segurança
Amigos...
Meus sistemas usam DBF para guardar as informações.
Todos sabem que esses arquivos ficam disponíveis "abertamente" para qualquer um que tiver acesso ao DBU/DBASE.EXE; podem fazer qualquer alteração sem autorização.
Queria mudar para outra forma em que se use uma senha para abri-los, como os arquivos em SQL etc.
Mas queria fazer isso sem mudar muita coisa em meus PRGs.
Alguém tem uma luz?
Saudações,
ERASMO ANDRIOLI
Meus sistemas usam DBF para guardar as informações.
Todos sabem que esses arquivos ficam disponíveis "abertamente" para qualquer um que tiver acesso ao DBU/DBASE.EXE; podem fazer qualquer alteração sem autorização.
Queria mudar para outra forma em que se use uma senha para abri-los, como os arquivos em SQL etc.
Mas queria fazer isso sem mudar muita coisa em meus PRGs.
Alguém tem uma luz?
Saudações,
ERASMO ANDRIOLI
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
DBF x SEGURANÇA
Erasmo, acho que a melhor solução seria o LetoDB:
LetoDb e Harbour, como usar
RDD LETO Sem Mistério
Abraços,
LetoDb e Harbour, como usar
RDD LETO Sem Mistério
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
DBF x SEGURANÇA
Amiguinho,
Você poderia usar o comando, USE arquivo SHARED ENCRIPTED, só que não.
Dê uma olhada na postagem DBF: criptografia total e permanente.
Pelo que coloquei a modificação seria pequenissima e direta. Eu só criptografo os campos que quero, um exemplo é o campo nome numa tabela de clientes e descriptografo no momento de ser visualizado no browser do sistema.
O único passo que seu sistema terá de fazer é o de criptografar na primeira vez a tabela:
Você poderia usar o comando, USE arquivo SHARED ENCRIPTED, só que não.
Dê uma olhada na postagem DBF: criptografia total e permanente.
Pelo que coloquei a modificação seria pequenissima e direta. Eu só criptografo os campos que quero, um exemplo é o campo nome numa tabela de clientes e descriptografo no momento de ser visualizado no browser do sistema.
O único passo que seu sistema terá de fazer é o de criptografar na primeira vez a tabela:
Código: Selecionar todos
function DBFEncripta( cDBF, lEncriptar, cCriptFrase )
do case
case cDBF = "CLIENTES"
dbSelectArea( cDBF )
OrdSetFocus( 0 )
dbGoTop()
do while .not. eof()
_oque_ := clientes->NOME
dbRLock()
if lEncriptar // Quero encriptar
if !( cCriptFrase $ _oque_ ) // Se a frase de criptografia ainda na existir, inclui...
clientes->NOME := cCriptFrase + Codifica( alltrim( _oque_ ) )
endif
else // Quero descriptar
if cCriptFrase $ _oque_
clientes->NOME := Decodifica( StrTran( _oque_, cCriptFrase, "" ) )
endif
endif
dbRUnLock()
dbCommit()
dbSkip()
enddo
OrdSetFocus( 2 )
dbGoTop()
endcase
return nil
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.
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
DBF x Segurança
Utilizo de forma muito simples e eficaz com a DBFINFO no xharbour, mas acredito que também faça parte do harbour. Veja:
#include "dbinfo.ch"
passw:= "sua password que pode ser tambem criptografada"
aq1:={}
aadd(aq1,{'rsv2' ,'c',30,0})
aadd(aq1,{'rsv3' ,'n',30,0})
dbcreate('impostos',aq1)
use impostos
impostos->(DbInfo(DBI_PASSWORD, passw))
Faz o teste. Na tua aplicação ficará tudo transparente, dbedit(), etc. Abra por outro aplicativo e tudo estará criptografado.
[]s
Antonio Carlos - Curitiba
#include "dbinfo.ch"
passw:= "sua password que pode ser tambem criptografada"
aq1:={}
aadd(aq1,{'rsv2' ,'c',30,0})
aadd(aq1,{'rsv3' ,'n',30,0})
dbcreate('impostos',aq1)
use impostos
impostos->(DbInfo(DBI_PASSWORD, passw))
Faz o teste. Na tua aplicação ficará tudo transparente, dbedit(), etc. Abra por outro aplicativo e tudo estará criptografado.
[]s
Antonio Carlos - Curitiba
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
DBF x Segurança
Faz parte sim, veja um exemplo com mais detalhes:carlos_dornelas escreveu:mas acredito que também faça parte do harbour
viewtopic.php?f=4&t=11483#p65453
Obs.: a senha pode ter até 8 caracteres e arquivos de índices e os arquivos DBT não são criptografados.
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
DBF x Segurança
Boa tarde!
Não entendi... ele vai deixar os arquivos .DBF criptografados? de quem forma isso ocorrerá se ele é criado normalmente pelo sistema?
ERASMO
Não entendi... ele vai deixar os arquivos .DBF criptografados? de quem forma isso ocorrerá se ele é criado normalmente pelo sistema?
ERASMO
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
DBF x Segurança
Erasmo, desta forma, todo o conteudo do banco de dados fica invisivel para o fox.exe ou dbase.exe, somente o seu programa visualiza, mas eu não achei legal...
abs.
Código: Selecionar todos
#Include "FiveWin.ch" // retire para testar
#Include "dbinfo.ch"
FUNCTION PASSDBF()
LOCAL cSenha := "123456"
LOCAL cArq, n
cArq := {}
AADD( cArq, { 'CNOME' , 'C', 40, 0 } )
AADD( cArq, { 'NUMERO', 'N', 16, 0 } )
DBCREATE( 'PASSDBF', cArq )
USE PASSDBF
PASSDBF->( DbInfo( DBI_PASSWORD, cSenha ) ) // AQUI ENCRIPTA TUDO
FOR N = 1 TO 10
APPEND BLANK
// NEM O FOX.EXE, NEM O DBASE.EXE ABREM. - Usando xHarbour.
REPLA CNOME WITH "ENCRIPTANDO DADOS COM SENHA NO DBF"
REPLA NUMERO WITH VAL( "999999999999999" )
NEXT
GO TOP
Browse()
RETURN NIL
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
DBF x Segurança
Erasmo,
Assim, nem o fox.exe ou dbase.exe abrem o banco, somente o programa principal.
abs
Assim, nem o fox.exe ou dbase.exe abrem o banco, somente o programa principal.
Código: Selecionar todos
//#define DBI_ENCRYPT 140 /* Encrypt table */
PASSDBF->( DbInfo( DBI_ENCRYPT, cSenha ) )
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
DBF x Segurança
Meu pensamento é o mesmo do Maligno (não sei se ele mudou) na época era que os dados pertencem ao usuário. Por isso não vejo como questão crucial.
Mas gostei das dicas.
Com qualquer servidor SQL a pessoa mal intencionada pode bagunçar tudo, tanto faz ser DBF, SQL etc...
Se ela tem acesso ao servidor e quer prejudicar não adianta nada disso.
Por exemplo, pode dar um boot com pen drive ou cdrom e formatar o servidor.
Quem sabe usar DBU ou algo similar não é um usuário primário.
Saudações,
Itamar M. Lins Jr.
Mas gostei das dicas.
Com qualquer servidor SQL a pessoa mal intencionada pode bagunçar tudo, tanto faz ser DBF, SQL etc...
Se ela tem acesso ao servidor e quer prejudicar não adianta nada disso.
Por exemplo, pode dar um boot com pen drive ou cdrom e formatar o servidor.
Quem sabe usar DBU ou algo similar não é um usuário primário.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
DBF x Segurança
Olá Pessoal,
Minha opinião:
Os dados São propriedade particular do Cliente, e isso de forma explicita, nenhum juiz pensa o contrário.
Por outro lado, o desenvolvedor pode sim usar criptografia nos bancos de dados, e impedir que outros utilitários o vejam, deixando isso apenas por conta do programa que o gerencia.
Banco de dados DBF uma vez criptografados, podem ser transportados da forma que desejar, porém eles estarão sempre criptografados, mesmo que se formate o computador.
Se os dados estão criptografados, e o cliente decide interromper contrato, e seu sistema não tem o recurso que se não for fornecida chave liberação ele bloqueia as funções principais, permitindo apenas consultas aos dados, o cliente pode exigir e você tem a obrigação de fornecer um utilitário para que ele possa acessar seus dados quando quiser.
A Lei Brasileira de Software é omissa nisso, mas protege os direitos autorais e reza sobre a obrigação do desenvolvedor com o cliente.
Minha opinião:
Os dados São propriedade particular do Cliente, e isso de forma explicita, nenhum juiz pensa o contrário.
Por outro lado, o desenvolvedor pode sim usar criptografia nos bancos de dados, e impedir que outros utilitários o vejam, deixando isso apenas por conta do programa que o gerencia.
Banco de dados DBF uma vez criptografados, podem ser transportados da forma que desejar, porém eles estarão sempre criptografados, mesmo que se formate o computador.
Se os dados estão criptografados, e o cliente decide interromper contrato, e seu sistema não tem o recurso que se não for fornecida chave liberação ele bloqueia as funções principais, permitindo apenas consultas aos dados, o cliente pode exigir e você tem a obrigação de fornecer um utilitário para que ele possa acessar seus dados quando quiser.
A Lei Brasileira de Software é omissa nisso, mas protege os direitos autorais e reza sobre a obrigação do desenvolvedor com o cliente.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
DBF x Segurança
Para voltar o banco de dados ao normal, abrindo pelo fox.exe ou dbase.exe
Abs.
Código: Selecionar todos
//#define DBI_DECRYPT 141 /* Decrypt table */
PASSDBF->( DbInfo( DBI_DECRYPT, cSenha ) ) // AQUI DESENCRIPTA TUDO
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
DBF x Segurança
Contanto que a senha fique de posse da empresa. O pessoal deve poder acessar a base através de outros programas. Os dados pertencem ao cliente imagine uma planilha excel que ninguém pode acessar, apenas o excel ? hoje podemos abrir a maioria dos documentos e compartilhar a informação.Banco de dados DBF uma vez criptografados, podem ser transportados da forma que desejar, porém eles estarão sempre criptografados, mesmo que se formate o computador.
Dados criptografados não servem para nada. .XLS é um padrão de dados assim como o .DBF, se eles estão criptografados não serão úteis para programas de terceiros... Quem quer abrir DBF para alterar dados, deve entender o que está fazendo, se for apenas p/ prejudicar existem outros meios só criptografia não adianta nada se a pessoa tem acesso fisicamente ao computador.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
DBF x Segurança
É bem simples o que estou escrevendo.
MSSQL por exemplo os dados estão de uma certa forma protegidos, mas qualquer programa feito com qualquer linguagem moderna pode acessar, contanto que o administrador informe os dados p/ acesso.
Saudações,
Itamar M. Lins Jr.
MSSQL por exemplo os dados estão de uma certa forma protegidos, mas qualquer programa feito com qualquer linguagem moderna pode acessar, contanto que o administrador informe os dados p/ acesso.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
DBF x Segurança
Olá Itamar,
No entanto, quanto menos facilitar melhor em sistemas que necessitam esse tipo de segurança.
Senha é pessoal e intransferível. Se alguém fizer alguma operação com sua senha, o responsável é você, até que você prove judicialmente que sua senha foi obtida de forma ilegal.Itamar M. Lins Jr. escreveu:Contanto que a senha fique de posse da empresa.
Não. Não deve. Essa decisão é do desenvolvedor, e se for o caso, deve fazer parte do contrato, onde o desenvolvedor se exime de responsabilidades.Itamar M. Lins Jr. escreveu:O pessoal deve poder acessar a base através de outros programas.
Sim. Ele é proprietário dos dados.Itamar M. Lins Jr. escreveu:Os dados pertencem ao cliente
Como disse antes, essa decisão é do cliente contratante, sem prejuízo ao desenvolvedor se ele decidir que seus dados tenham acesso livre (público).Itamar M. Lins Jr. escreveu:imagine uma planilha excel que ninguém pode acessar, apenas o excel ? hoje podemos abrir a maioria dos documentos e compartilhar a informação.
Não até você encontrar um cliente que peça isso, principalmente em SGBD Legado.Itamar M. Lins Jr. escreveu:Dados criptografados não servem para nada.
Com certeza. Basta ver o que os Estados Unidos Montou (e custa uma fortuna) após 2012, quando teve seus bancos de dados invadidos por um antigo espião (deles mesmo, a saber: Edward Snowden).Itamar M. Lins Jr. escreveu:Quem quer abrir DBF para alterar dados, deve entender o que está fazendo, se for apenas p/ prejudicar existem outros meios só criptografia não adianta nada se a pessoa tem acesso fisicamente ao computador.
No entanto, quanto menos facilitar melhor em sistemas que necessitam esse tipo de segurança.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
DBF x Segurança
Ola!
No caso o projeto uma base em MSSQL e Oracle e uma terceira, que eu nem sei... penso que era via dados exportados CVS.
Meu sistema eu exporto dados p/ XLS por exemplo... então não tenho esse trauma com criptografia.
Desenvolvedor não apita nada em projetos grandes. Fala mais alto quem paga mais.
Como disse antes o desenvolvedor não apita nada!!! A base de dados é do cliente ele comprou o MSSQL por exemplo e dentro dele rodam 5 bases de aplicativos de empresas diferentes, que podem ou não compartilhar dados.
Vc vai criptografar os seus dados dentro de uma base MSSQL por exemplo ?
Vai criptografar os dados de uma planilha excel ?
É o mesmo pensamento p/ DBF. Pode até criptografar, mas a chave para descriptografar deve pertencer a quem é o dono das informações, não pertence a quem fez o programa, não pertence a Microsoft por exemplo.
A empresa compra um servidor de banco de dados por 200.000,00 por exemplo, coloca lá dentro vários tipos de informações de diversos programas e de diversas empresas, ai vem um lindinho coloca a informação dele toda criptografada os outros precisando trabalhar com a informação vai fazer como ?
Meus dados estão protegidos ele diz, ai o dono da empresa fala protegidos de quem ? eu preciso saber quantos notebooks deram defeito... ? É mais meus dados... Seus dados ? como assim ?
Podem existir dados criptografados em SGBD(MSSQL/FireBird/MySQL...) mais é muito difícil achar, em 99% é apenas uma senha e o IP do servidor... no mais voltamos tudo de novo p/ o inicio da conversa.
Saudações,
Itamar M. Lins Jr.
Pois é, no mundo real não funciona dessa forma. Já participei de projetos com a Lenovo por exemplo tínhamos acesso aos dados das bases de dados deles, nenhuma era criptografada, basta o endereço ip e senha.Não. Não deve. Essa decisão é do desenvolvedor, e se for o caso, deve fazer parte do contrato, onde o desenvolvedor se exime de responsabilidades.
No caso o projeto uma base em MSSQL e Oracle e uma terceira, que eu nem sei... penso que era via dados exportados CVS.
Meu sistema eu exporto dados p/ XLS por exemplo... então não tenho esse trauma com criptografia.
Desenvolvedor não apita nada em projetos grandes. Fala mais alto quem paga mais.
Senha do servidor do SGBD Jairo, não tem nada a ver com essa que vc está se referindo.Senha é pessoal e intransferível. Se alguém fizer alguma operação com sua senha, o responsável é você, até que você prove judicialmente que sua senha foi obtida de forma ilegal.
Não Jairo não é publico é um acesso restrito vc pode somente permitir por exemplo acesso a leitura, não pode gravar nada.Como disse antes, essa decisão é do cliente contratante, sem prejuízo ao desenvolvedor se ele decidir que seus dados tenham acesso livre (público).
Como disse antes o desenvolvedor não apita nada!!! A base de dados é do cliente ele comprou o MSSQL por exemplo e dentro dele rodam 5 bases de aplicativos de empresas diferentes, que podem ou não compartilhar dados.
Vc vai criptografar os seus dados dentro de uma base MSSQL por exemplo ?
Vai criptografar os dados de uma planilha excel ?
É o mesmo pensamento p/ DBF. Pode até criptografar, mas a chave para descriptografar deve pertencer a quem é o dono das informações, não pertence a quem fez o programa, não pertence a Microsoft por exemplo.
A empresa compra um servidor de banco de dados por 200.000,00 por exemplo, coloca lá dentro vários tipos de informações de diversos programas e de diversas empresas, ai vem um lindinho coloca a informação dele toda criptografada os outros precisando trabalhar com a informação vai fazer como ?
Meus dados estão protegidos ele diz, ai o dono da empresa fala protegidos de quem ? eu preciso saber quantos notebooks deram defeito... ? É mais meus dados... Seus dados ? como assim ?
Podem existir dados criptografados em SGBD(MSSQL/FireBird/MySQL...) mais é muito difícil achar, em 99% é apenas uma senha e o IP do servidor... no mais voltamos tudo de novo p/ o inicio da conversa.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.