Soluções Alternativas para proteger scripts PHP
Nesse artigo pretendo citar algumas alternativas para codificação de scripts php.
A idéia surgiu de uma dúvida em um fórum de discussão, sendo também assunto da primeira reunião do grupo de usuários de PHP de Bauru e região, onde realizei uma apresentação sobre o assunto.
Nessa primeira parte do artigo irei citar algumas ferramentas que existem, como elas funcionam (com direito a links) e pequenos detalhes. Em outros artigos (não sei quantos, nem quando) irei realizar comentários sobre essas ferramentas como vantagens, desvantagens, instalação entre outros.
Existem duas formas de proteção:
Obscurecedores (Obsfuscators)
- Obscurecer significa "embaralhar", "ocultar", "confundir" o código fonte.
- Também chamada de scrambled (cada nome "bonito"), é uma técnica que consiste em dificultar a interpretação do código fonte, como por exemplo a retirada de tabulações e a troca dos nomes de variáveis e/ou funções
Pode ser realizada manualmente ou com auxílio de ferramentas.
Manualmente:
Uma tarefa trabalhosa para ser realizada "no braço", é necessária muita técnica e experiência para tal façanha e o resultado pode demorar muito.
Por outro lado você tem um controle maior do que acontece, pode colocar comentários confusos, nomes de variáveis trocados entre si, criptografar todas mensagens utilizadas no seu script, além da mais fatal, uma lógica confusa.
Essa última é a mais comum, algumas vezes é involuntário, outras por simples discuido ou dificuldade de quem programou, mas esse é assunto para outro artigo.
Arriscar tal procedimento é vantajoso quando você sabe o que fazer, trocar nomes de variáveis e funções não é tão simples assim, tem que tomar cuidado com pequenos detalhes, sem contar que a técnica é muito mais do que isso, é algo como criptografia, existem milhões de formas de realizar, mas a melhor é uma forma que ninguém conheça o retorno.
Se o assunto lhe interessou, pesquise nos mecanismos de busca (recomendo o google) por scrambled, obsfucator, ou algo parecido e terá diversas referências.
Software:
Existem diversas ferramentas para facilitar o "embaralhamento" de seu programa, mas é necessário checar o resultado, pois problemas podem acontecer, principalmente se você for adepto de variáveis variáveis e outras funções de mesma natureza. Esses problemas estão documentados em cada ferramenta (pelo menos em teoria).
É uma forma rápida e fácil de codificar scripts em massa, e o resultado é animador.
Fica mais fácil começar um script do zero que tentar entender o que um script "mascarado" faz. Sem contar o lado psicológico que impressiona qualquer um, desmotivando a utilização de um script assim.
Mas tenha cuidado para não cair na própria armadilha, guarde sempre os originais, e os relatórios que essas ferramentas geram, podem ser úteis em uma emergência.
A maior vantagem de um obscurecedor é que você embaralha o código localmente, não exigindo a instalação de outros módulos no servidor. Sendo ideal para quem não tem acesso a tais configurações.
No servidor você pode subir somente os arquivos "scrambleados" (olha eu inventando palavras no português) que eles funcionarão normalmente, um bom teste antes de subir os arquivos evita maiores dores de cabeça.
A idéia surgiu de uma dúvida em um fórum de discussão, sendo também assunto da primeira reunião do grupo de usuários de PHP de Bauru e região, onde realizei uma apresentação sobre o assunto.
Nessa primeira parte do artigo irei citar algumas ferramentas que existem, como elas funcionam (com direito a links) e pequenos detalhes. Em outros artigos (não sei quantos, nem quando) irei realizar comentários sobre essas ferramentas como vantagens, desvantagens, instalação entre outros.
Existem duas formas de proteção:
Obscurecedores (Obsfuscators)
- Obscurecer significa "embaralhar", "ocultar", "confundir" o código fonte.
- Também chamada de scrambled (cada nome "bonito"), é uma técnica que consiste em dificultar a interpretação do código fonte, como por exemplo a retirada de tabulações e a troca dos nomes de variáveis e/ou funções
Pode ser realizada manualmente ou com auxílio de ferramentas.
Manualmente:
Uma tarefa trabalhosa para ser realizada "no braço", é necessária muita técnica e experiência para tal façanha e o resultado pode demorar muito.
Por outro lado você tem um controle maior do que acontece, pode colocar comentários confusos, nomes de variáveis trocados entre si, criptografar todas mensagens utilizadas no seu script, além da mais fatal, uma lógica confusa.
Essa última é a mais comum, algumas vezes é involuntário, outras por simples discuido ou dificuldade de quem programou, mas esse é assunto para outro artigo.
Arriscar tal procedimento é vantajoso quando você sabe o que fazer, trocar nomes de variáveis e funções não é tão simples assim, tem que tomar cuidado com pequenos detalhes, sem contar que a técnica é muito mais do que isso, é algo como criptografia, existem milhões de formas de realizar, mas a melhor é uma forma que ninguém conheça o retorno.
Se o assunto lhe interessou, pesquise nos mecanismos de busca (recomendo o google) por scrambled, obsfucator, ou algo parecido e terá diversas referências.
Software:
Existem diversas ferramentas para facilitar o "embaralhamento" de seu programa, mas é necessário checar o resultado, pois problemas podem acontecer, principalmente se você for adepto de variáveis variáveis e outras funções de mesma natureza. Esses problemas estão documentados em cada ferramenta (pelo menos em teoria).
É uma forma rápida e fácil de codificar scripts em massa, e o resultado é animador.
Fica mais fácil começar um script do zero que tentar entender o que um script "mascarado" faz. Sem contar o lado psicológico que impressiona qualquer um, desmotivando a utilização de um script assim.
Mas tenha cuidado para não cair na própria armadilha, guarde sempre os originais, e os relatórios que essas ferramentas geram, podem ser úteis em uma emergência.
A maior vantagem de um obscurecedor é que você embaralha o código localmente, não exigindo a instalação de outros módulos no servidor. Sendo ideal para quem não tem acesso a tais configurações.
No servidor você pode subir somente os arquivos "scrambleados" (olha eu inventando palavras no português) que eles funcionarão normalmente, um bom teste antes de subir os arquivos evita maiores dores de cabeça.
Olá amigos é bom criptografar sim, mas se caso algum de vocês não guardarem o código fonte de backup segue este site que poderá ajuda-los a obter o código fonte novamente http://f7sistemas.com.br/site/servicos/decodificacao-decriptografar-decodificar-arquivos-php/
Um abraço a todos e espero ter ajudado !!!
Um abraço a todos e espero ter ajudado !!!
15/06/2013 5:04pm
(~11 anos atrás)
cara quero um scrip para comentar em galeria e ficar tudo em uma pagina que o internalta pode ver como os 10 utimos comentario manda resposta para meu msn se vc tem isso ai kennedipaulo@hotmail.com se vc tivel algum ai manda ai para mim
30/04/2006 5:34pm
(~18 anos atrás)
Parabens, gostei do artigo sobre um assunto importante para todos os programadores PHP.
Já trabalhei com desenvolvimento de sistemas durante 15 anos, em 2002 tive de retornar as atividades, programando em PHP e a maior preoculpação era justamente a proteção do codigo fonte, pois somente nós programadores sobemos quantas horas de trabalho nos custou um sistema ou rotina.
Durante 3 anos pesquisei varias ferramentas para codificar o PHP, e deixei de fornecer sistemas para clientes por falta de proteção do codigo.
Desde de agosto de 2005, vinha testando um codificador chamado "CodeLock" versão 2, tentei entede-lo, para ver se ele deixava rastros para facilitar a decodificação, mas graças a Deus ele funciona realmente.
Ele adiciona apenas um arquivo ao seu conjunto para que ele possa trabalhar.
O "CodeLock" só tem uma pequena desvantagem, é pago (US$ 55.00), porem eu acho um custo baixo para a proteção de uma criação sua, Pois este custo pode ser ressarcido na venda do seu primeiro sistema.
Peço desculpas a todos pela "propaganda" mas estou compartilhando a minha experiencia.
Já trabalhei com desenvolvimento de sistemas durante 15 anos, em 2002 tive de retornar as atividades, programando em PHP e a maior preoculpação era justamente a proteção do codigo fonte, pois somente nós programadores sobemos quantas horas de trabalho nos custou um sistema ou rotina.
Durante 3 anos pesquisei varias ferramentas para codificar o PHP, e deixei de fornecer sistemas para clientes por falta de proteção do codigo.
Desde de agosto de 2005, vinha testando um codificador chamado "CodeLock" versão 2, tentei entede-lo, para ver se ele deixava rastros para facilitar a decodificação, mas graças a Deus ele funciona realmente.
Ele adiciona apenas um arquivo ao seu conjunto para que ele possa trabalhar.
O "CodeLock" só tem uma pequena desvantagem, é pago (US$ 55.00), porem eu acho um custo baixo para a proteção de uma criação sua, Pois este custo pode ser ressarcido na venda do seu primeiro sistema.
Peço desculpas a todos pela "propaganda" mas estou compartilhando a minha experiencia.
07/03/2006 3:48am
(~18 anos atrás)
Olá, tenho acompanhado a discussão e me lembrei de um script que achei tempos atrás que estava protegido... Não sei como chamar a ferramenta, mas acredito que possa servir de exemplo para este tema:
O código protegido (baixem e verifiquem localmente): http://www.galleryhp.com/enter/index.php?displayaction=pro_edition&pro_edition_action=download&require=download_pro
A ferramenta usada para a proteção: http://www.ioncube.com/
Espero ter contribuído...
O código protegido (baixem e verifiquem localmente): http://www.galleryhp.com/enter/index.php?displayaction=pro_edition&pro_edition_action=download&require=download_pro
A ferramenta usada para a proteção: http://www.ioncube.com/
Espero ter contribuído...
17/07/2004 7:45pm
(~20 anos atrás)
a questão eh q cada vez mais estao utilizando programas baseados em php para configuracao local, tornando seu fonte de facil acesso, acredito eu que este seja o principal motivo de procura de programas com essa função.
10/01/2004 11:46am
(~21 anos atrás)
Obrigado pelo comentário.
Preciso arrumar tempo nas férias de julho para dar continuidade ao artigo, espere que boas novidades virão.
Preciso arrumar tempo nas férias de julho para dar continuidade ao artigo, espere que boas novidades virão.
01/07/2003 11:23pm
(~21 anos atrás)
Parabéns Alessander,
Nota 1000 seu artigo, caiu como uma luva pra mim. Tenho um cliente fuçador que vive derrubando o servidor, simplesmente porque quis "testar" uma alteração.
Com esse seu toque pretendo resolver o problema de vez por todas.
Não se trata de esconder o fonte, mas de me proteger contra esses pseudos programadores..
Quem sabe faz, quem não sabe copia...
Um abraço.
Nota 1000 seu artigo, caiu como uma luva pra mim. Tenho um cliente fuçador que vive derrubando o servidor, simplesmente porque quis "testar" uma alteração.
Com esse seu toque pretendo resolver o problema de vez por todas.
Não se trata de esconder o fonte, mas de me proteger contra esses pseudos programadores..
Quem sabe faz, quem não sabe copia...
Um abraço.
16/05/2003 8:45am
(~21 anos atrás)
Olá Adhemar,
Obrigado.
Sobre obscurecedores, ou simplesmente ofuscadores (não conhecia esse termo quando fiz o artigo :-D) sem dúvida recomendo o POBS, dos que testei é o mais completo (para falar a verdade muitos são baseados nele).
Quando a codificadores, se não quiser gastar use o bCompiler, mas ele é chato de instalar e tem que ter um certo acesso ao servidor, se não tiver esse acesso fica difícil.
E você terá que criar alguns códigos para chamar seus scripts codificados, nada muito complicado mas foge do trivial.
Se tiver grana use o Zend Encoder, prometem que ele é muito fácil de usar, e garante um nível de proteção grande. Sinceramente não cheguei a testar, mas no próximo artigo sobre o assunto (espero publicar em um mês ou pouco mais) pretendo falar sobre codificadores melhor.
Um abraço,
Alessander
Obrigado.
Sobre obscurecedores, ou simplesmente ofuscadores (não conhecia esse termo quando fiz o artigo :-D) sem dúvida recomendo o POBS, dos que testei é o mais completo (para falar a verdade muitos são baseados nele).
Quando a codificadores, se não quiser gastar use o bCompiler, mas ele é chato de instalar e tem que ter um certo acesso ao servidor, se não tiver esse acesso fica difícil.
E você terá que criar alguns códigos para chamar seus scripts codificados, nada muito complicado mas foge do trivial.
Se tiver grana use o Zend Encoder, prometem que ele é muito fácil de usar, e garante um nível de proteção grande. Sinceramente não cheguei a testar, mas no próximo artigo sobre o assunto (espero publicar em um mês ou pouco mais) pretendo falar sobre codificadores melhor.
Um abraço,
Alessander
26/02/2003 11:54am
(~22 anos atrás)
Alessander... você mandou muito bem nesse artigo. Eu gostaria de saber qual dos obscurecedores ou codificadores você usa e por quê.
Abraço...
Abraço...
26/02/2003 11:28am
(~22 anos atrás)
http://www.criptografarphp.com.br/
Um abraço !