sábado, 20 de dezembro de 2008

Escondendo o código do FireBird


Pequeno exemplo ilustrando de como escondo o código das procedures, triggers e views.
Este método e muito mais profissional que criar uma role com o nome SYSDBA.
Você deve estar se perguntando, mas o qualquer pessoa pode ver meu banco de qualquer jeito acessando com SYSDBA, na maioria dos casos esta não e a grande preocupação, lógico que gostaríamos que o FB em versões futuras contasse com um recurso de proteção do banco.

No meu caso este comando e bastante útil.
Vamos lá então.
Escondendo código de stored procedures.

UPDATE rdb$procedures
SET rdb$procedure_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL))

Veja uma imagem antes e depois do comando.
Procedure antes.








Procedure depois.





Para que um usuário altere ou copie a estrutura original do banco, ele precisa saber o código original. Ele ate pode refazer, mas seu sistema depende do código original.

Ocultando codigo das triggers

UPDATE rdb$triggers a
SET rdb$trigger_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0)
OR (rdb$system_flag IS NULL))
AND NOT EXISTS(
SELECT rdb$trigger_name FROM rdb$check_constraints
WHERE rdb$trigger_name=a.rdb$trigger_name)
  
Ocultando codigo das views,

UPDATE rdb$relations
SET rdb$view_source = NULL,
rdb$description ='Protegido por lei de copyright'
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL))


Importantíssimo: Rode este comando sempre no banco do seu cliente, e tenha sempre o código de todo seu banco, uma vez utilizado este comando não e mais possível desfazer.



Espero que tenha ajudado...
John K.






Um comentário:

Jhonny Suarez disse...

Bom post, obrigado:).