[firebase-br] RES: Segurança

Luis luisfirevb em gmail.com
Qua Ago 19 10:36:13 -03 2009


Renato concordo plenamente, por isso comentei que a parte de scripts para
mim devem ficar no aplicativo, quando inviável de outra forma, apesar da
performance.

No email que enviei agora, comento sobre a dificuldade de manutenção num
banco já em produção, usando essa técnica.

Luis


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Renato Bermudo
Enviada em: quarta-feira, 19 de agosto de 2009 09:52
Para: FireBase
Assunto: Re: [firebase-br] RES: RES: RES: RES: RES: Segurança

Olá Luis!
No próprio site firebase tem um artigo que ensina como ocultar os códigos 
das
triggers e procedures.
Eu mesmo, sempre executo o script abaixo no banco do cliente:

UPDATE rdb$procedures
SET rdb$procedure_source = 'Protegido por lei de copyright. Minha empresa.'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL));

UPDATE rdb$triggers
SET rdb$trigger_source = 'Protegido por lei de copyright. Minha Empresa.'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL)) AND 
(rdb$trigger_name NOT IN
(SELECT rdb$trigger_name FROM rdb$check_constraints));

Pra mim o cliente tem direito aos dados, mas não aos fontes, e no meu 
conceito, scripts são fontes.

Um abraço!


----- Original Message ----- 
From: "Luis" <luisfirevb em gmail.com>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Wednesday, August 19, 2009 9:25 AM
Subject: [firebase-br] RES: RES: RES: RES: RES: Segurança


Acho que há dois pontos fundamentais no quesito segurança para banco de
dados:

1- Primeira - exatamente a quem pertencem os dados. Eu sempre deixo claro,
tanto a nível de proposta como de contrato, que o banco é do cliente e de
sua inteira responsabilidade em: Manter, proteger e realizar backups
periódicos, pois o banco é dele.

2- a parte tecnológica dos código contidos no banco: Triggers, Procedures,
etc... esse é um ponto que complica ao desenvolvedor, pois no FB, pelo que
já vi, não há como proteger isso e passar ao cliente, ele terá acesso. Por
esse motivo, em aplicações comerciais para múltiplas empresas, essa parte
acaba sendo interessante ficar no aplicativo e não no banco, apesar da perda
de performance.

Nota: Ainda não tenho conhecimento suficiente para saber se é possível no FB
passar uma procedure ou trigger como parâmetro, ou seja, a estrutura da
trigger ou procedure estaria no banco, mas os dados básicos seriam
fornecidos através de parâmetros por uma chamada do aplicativo?

Luis


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Felix
Enviada em: terça-feira, 18 de agosto de 2009 22:25
Para: 'FireBase'
Assunto: [firebase-br] RES: RES: RES: RES: Segurança

Segurança para base de dados é um assunto muito complexo.

Por exemplo, eu gostaria de proteger a base para impedir que um usuário
tivesse chance de adulterar os registros, excluir lançamentos de contas a
receber (e embolsar o dinheiro), mudar quantidades em estoque (e levar o
produto para casa), etc - sim, eu sei que o usuário teria que 'estudar' para
abrir uma base Firebird com flamerobin ou qq outra ferramenta.

MAS: se eu bloquear a base a empresa ficaria a minha mercê! Não poderia
migrar os dados (que são propriedade da empresa) sem minha autorização ou
consentimento!

Eu poderia 'chantagear' a empresa, cobrando um 'extra' para exportar a base.

Da maneira como é hoje: o cliente é o responsável pela segurança dos
arquivos de dados. Se ele quiser 100% de segurança basta colocar um servidor
numa sala trancada ou num rack com chave.

Basta deixar claro para o cliente o que ele DEVE fazer e o que nós PODEMOS
oferecer.

Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Eduardo Jedliczka
Enviada em: terça-feira, 18 de agosto de 2009 22:04
Para: Carlos H. Cantu; FireBase
Assunto: Re: [firebase-br] RES: RES: RES: Segurança

além do mais, dá para se conectar com o outro usuário, com a mesma
fragilidade (eu já precisei abrir um banco com a role de sysdba e nao
perdi mais do que 10 minutos para descobrir o nome do owner da base)

e tem mais, uma ROLE com o nome SYSDBA não funciona no firebird 2.1

Abraço

Em Ter, 2009-08-18 às 16:04 -0300, Carlos H. Cantu escreveu:

> O problema dessa gambiarra eh que eh muito facil remover o role
> criado.
>
> Pesquise as mensagens antigas na lista que isto já foi discutido.
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
> HEP> A tempo pesquisei sobre este assunto, achei algo, que parece
interessante,
> HEP> era algo assim...
>
> HEP> Crie um usuário no security.fdb (ex: user: admin e senha:  admin)
> HEP> gsec -user sysdba -pas masterkey -add admin -pw admin
>
> HEP> Crie uma Base de Dados com este usuário
>
> HEP> Logue na Base criada com este user e crie uma role com nome de Sysdba
>
> HEP> Assim qdo alguem copiar o banco para outro server que ele saiba a
senha
> HEP> do sysdba ira aparecer um erro e o Sysdba nao conecta. Nao fiz testes
> HEP> afundo...
> HEP> Ta ai a dica, a quem interessar poste os resultados depois.
>
>
> HEP> 2009/8/18 Rodolpho da Silva <nascimento em gko.com.br>
>
> >> > 100% confiável, 100% de performance, 100% mesmo? Somente servidor
> >> > fisicamente protegido...
> >>
> >> Disse tudo....
> >>
> >> Rodolpho da Silva
> >> www.essencialcode.com.br
> >>
> >>
> >>
> >>  ----- Original Message -----
> >>  From: Felix
> >>  To: 'FireBase'
> >>  Sent: Tuesday, August 18, 2009 2:41 PM
> >>  Subject: [firebase-br] RES: RES: RES: Segurança
> >>
> >>
> >>  Boas idéias... mas...
> >>
> >>  1. Perda de performance
> >>  2. Perda de performance
> >>  3. Chances de corrupção da base
> >>
> >>  Eu tentei criar usuários, mudar senha, etc etc. Nada adiantaria.
Bastou
> >>  copiar a base para outro micro com um Firebird 'limpo', criar o
usuário
> >> que
> >>  existia no Firebird original e... acesso completo!
> >>
> >>  100% confiável, 100% de performance, 100% mesmo? Somente servidor
> >>  fisicamente protegido...
> >>
> >>
> >>
> >>
----------------------------------------------------------------------------
--
> >>
> >>
> >>
> >>  No virus found in this incoming message.
> >>  Checked by AVG - www.avg.com
> >>  Version: 8.5.392 / Virus Database: 270.13.60/2311 - Release Date:
08/18/09
> >> 06:03:00
> >> ______________________________________________
> >> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> >> Para saber como gerenciar/excluir seu cadastro na lista, use:
> >> http://www.firebase.com.br/fb/artigo.php?id=1107
> >> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista