Em 26 de março de 2015 15:00, Fabrízio de Royes Mello < [email protected]> escreveu:
> On 26-03-2015 14:28, Euler Taveira wrote: > > On 26-03-2015 11:43, Márcio A. Sepp wrote: > >> Procuro fazê-lo sim. Posso não estar respondendo o último email da > >> thread, pq o meu questionamento ou minha resposta está mais focada neste > >> ponto e não no rumo que acabou tomando o assunto. > >> > > Responda no contexto *sempre* e remova o texto desnecessário. > > > >> Teve um caso de desenvolvimento de sistemas comerciais onde o fisco > >> "pegou" clientes utilizando o mesmo sistema, porém com comportamentos > >> bem distintos. Neste caso específico, a pessoa que foi implantar o > >> sistema alterou funções do sistema de modo a permitir um "caixa 2". Este > >> sistema era desenvolvido em Firebird e depois desse fato, a empresa > >> desenvolvedora optou por ocultar o código fonte dos procedimentos do > >> banco... > >> > > ... uma opção que não informaram é que se as suas funções foram feitas > > em C, você pode "esconder" o código fonte. > > > >> Pelo que vi Oracle implementa algo neste sentido tbm. Mas não sei se > >> é um anseio de outros usuários isso ou se eu estou divagando... > >> > > O "wrap" não previne que você consiga fazer uma engenharia reversa no > > código da PL; ele apenas torna a missão difícil. > > > >> Observe que eu não estou me referindo a ocultar o código fonte de > >> procedures/functions/triggers... e não em "fechar" o código fonte do > >> postgresql. > >> > > Isso se chama ofuscação do código. Bom, como se trata de um produto de > > código aberto, não vai ser tão difícil fazer um decompilador para o > > código ofuscado. Por essa e outras razões, tal funcionalidade está > > listada como "não será implementada" [1]. > > > > No seu caso, o ideal é proteger por contrato qualquer mudança no seu > > produto (como já foi dito pelo Dutra). Talvez algum módulo de auditoria > > em C para lhe proteger contra mudanças que visam burlar o seu sistema. > > > > > > [1] https://wiki.postgresql.org/wiki/Todo#Features_We_Do_Not_Want > > > > Não sei se ajuda, mas uma vez gerei um hash da definição de cada PL e no > procedimento de atualização de versão da estrutura do banco eu verificar > esse hash, se não batia não atualizava a versão e gerava um alerta. O > contexto era outro mas poderia ser feito um controle similar e vc > periodicamente executar em seus clientes. > > Att, > > -- > Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/ > PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > boa tarde iria sugerir exatamente isso, pega a ddl da função gera um md5 e compara com o que deveria de estar la e veja se sao iguais.. -- Douglas Fabiano Specht
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
