Proteja seu código-fonte PHP

Ola pessoal!

Hoje estive num dilema danado para fechar negócio com um cliente considerado promissor.

Descontente com o freelancer que antes desenvolvia seu site, ele resolveu procurar uma empresa para assumir o projeto, logo nos encontrou na web.

Na primeira reunião que tive com ele, ja me adiantou que não abriria mão da hospedagem que havia contratado a pouco tempo e comentou também que a pessoa que desenvolvia seu site agora trabalhava na empresa onde ele contratou a hospedagem.

Fiquei com uma pulga atrás da orelha porque o sistema que seria disponibilizado para a administração do site dele, é desenvolvido em PHP e a linguagem não possui nenhuma proteção nativa do código fonte.

Como é um software desenvolvido a mais de 4 anos e minha empresa tem parte de seus ganhos vindos dele, não gostaria de vê-lo rodando por ai sem permissão e o pior, alguém ganhando em cima do meu trabalho.

Então, fui “Googlar” um pouco e com a ajuda de meu sócio, encontramos ferramentas que ajudam a proteger os códigos-fonte de softwares escritos em PHP.

Uma destas ferramentas é o Zend Guard que nem vou comentar muito pelo valor de licenciamento meio salgado que fica em torno de $600 anual.

Zend Guard!

Zend Guard para Linux!

Um produto mais em conta é o PHP LockIt! que trabalha de forma parecida ao Zend Guard e que tem um valor de apenas $29.99.

Alguns recursos do PHP LockIt!

  • funciona com PHP 4 ou PHP 5
  • não necessita de software adicional instalado no servidor
  • possibilita a leitura de diretórios e de forma recursiva, aplica a criptografia
  • permite bloqueio de scripts para um ou mais endereços IP
  • permite a geração de chaves para criptografia
  • e muito mais..
PHP Lock IT!

PHP Lock IT!

OK! Não quer gastar nada? Encontramos solução também.

O POBS (PHP Obfuscator) é um pacote que roda via web (você pode colocá-lo a rodar na sua máquina local também, basta ter um servidor web, tal como o Apache, rodando) e apesar de não ter recursos avançados de proteção como o PHP LockIt!, quebra um galhão codificando variáveis, funções e etc.

PHP Obfuscator!

PHP Obfuscator!

Outros encontrados mas não testados:

Update: indicação do leitor Ronaldo Meneeshttp://www.bambalam.se/bamcompile/

Claro que, assim como existem ferramentas para o PHP, existem também para outras linguagens, tal como o javascript.

Lembre-se que todos os softwares citados acima ajudam a proteger o código, isso não quer dizer 100% de segurança.

Se alguém souber de mais algum software que realize tal tarefa, por favor, deixe seu comentário.

Grande abraço!


Mantenedor do portal Profissionais TI, sócio da SoftD Soluções Web e Desktop e, (in)felizmente, viciado em internet :)

46 Comentários

Djeison
3

Como leitor assíduo, gostaria de comentar algo sobre o relato acima, em poucas palavras:
“Nem a Revista Info pensa em postar dicas tão úteis como as que aqui são postadas, continuem assim”. menos MARKETING mais CONHECIMENTO E EXPERIÊNCIA.

Abraço jackson.

Silas Lopes
5

Olá Jackson!
Primeiramente, parabéns pelo post!
Agora, essa questão de proteger código-fonte (principalmente do PHP) é muito foda.
O dono da empresa quer o “seu” sistema rodando dentro da empresa dele, e contrata o “sobrinho” pra dar manutenção no site da empresa. Ele pega todos os seus fontes, faz gambiarra, copia, repassa pra todo mundo, enfim, faz de tudo. E você (programador)?? Onde entra nessa história?
Eu já ouvi falar de alguns desses programas, mas ainda não tive a oportunidade de utilizá-los. Mais uma vez, parabéns!

Abraços.

Jackson Caset Autor do Post
6

Ola Silas!

Agradeço a visita e o comentário. Espero que continue ligado no Profissionais TI. Estamos preparando muitas outras coisas específicas para a área.

Sobre seu comentário. Realmente é algo bem complicado, ainda mais qnd vc perde horas, dias, meses e anos trabalhando em algum aplicativo.

Estou utilizando o PHP LockIT. Pagamos uma licença e estamos bastante satisfeitos.
É praticamente impossível alguém conseguir a engenharia reversa :)

Grande abraço.

Gerson Santini
7

Parabéns, pela forma direta e objetiva das informações. Resaltando que entrei em contato por telefone e fui muito bem atendido pelo Jackson.
Fico feliz por encontrar um site onde as informações são claras , objetivas e veridicas. Gerson Santini – Itapema – Sc

Rafael Dantas
10

Grande Jackson! Sempre com Posts muito úteis.. Muito interessante essa de proteger o código ai..
PTI tá de parabéns!

Grande Abraço

Jackson Caset Autor do Post
11

Opa Rafael,

Realmente é algo importante a se pensar. Principalmente os códigos que fazem a “mágica” em seus sistemas…classes, funções e etc.

Agradeço muito a visita e o comentário. Abraço!

Fabiana
12

Gostei muito, tem algum jeito de colocar um form na pagina para o script php somente rodar após inserir a licença ? Vi um site que vende sistemas onde cada licença e gerada para o domínio que comprar, e depois de instalado a pessoa entra com a licença em um form. Alguem sabe qual programa faz isso ?

Jackson Caset Autor do Post
13

Oi Fabiana,

Com certeza teria como fazer algo (não sei se já existe algum pronto open source). Eu mesmo tenho um sistema web que faz a validação (em um servidor da empresa) de uma chave variável ligada ao domínio onde o mesmo esta rodando. Não é algo complicado de se fazer, mas tbm não é tão simples pois, deves pensar em várias situações por onde poderiam rodar o sistema sem a chave e etc.

Obrigado pela visita e comentário. Abraço!

Fabio Monteiro
14

Caros amigos, fico feliz por ter encontrado pessoas como voces que valorizam seus trabalhos e se preocupam com a integridade de seus fontes, seus posts foram muito uteis para mim, pois estou finalizando um desenvolvimento e preciso colocar o meu sistema para rodar no pc de meu cliente, vou usar o phplockit e com certeza vou resolver meu problema, mais uma vez muito obrigado pelo post e continuem assim, tambem estou a disposiçao para ajuda-los dentro dos meus conhecimentos. abraços.

Jackson Caset Autor do Post
15

@Fabio,

Ficamos extremamente felizes quando conseguimos alcançar o objetivo do PTI que é disseminar informação. Agradeço muito pelo comentário e espero “vê-lo” mais vezes por aqui.

Grande abraço

Cleiton Domazak
16

Tem o eAccelerator que alem de encriptar o codigo fonte é um excelente tuning de codigos php guardando em cache a compilação dos arquivos e alem do tuning ele diminiu o trafego http, da uma melhora de performance nas aplicaçõs fantastica, vale a pena conferir.Na empresa que trabalho utilizavamos Zend e ai migramos para o eAccelerator e o comentario é geral da melhora.
Vlw

Adriana
17

Oi, em situações como essas é realmente importante proteger o código PHP, só pra colaborar quero dizer que existe também o programa PHP-CRIPA para criptografia de arquivos PHP, é só dar uma pesquisa no google, esse é totalmente gratuito.

Denis
19

Excelente dica, estamos procurando ferramentas avançada nesse sentido aqui na empresa. Atualmente utilizamos o Sourcecorp, mas ele está muito frágil ( e é tão fácil encontrar o processo de descriptografar no google).

No ano passado, chegamos a testar o Source Guardian, mas vou dar uma olhada nas sugestões apresentadas no artigo.

Hellen Lemos
20

Jackson parabéns pelo artigo. Foi escrito há 1 ano e meio e certamente sempre será atual.

Devido aos problemas mencionados por você, nos últimos três meses testei vários software de criptografai de scripts PHP. O que mais me agradou foi o http://www.ioncube.com.

Foi o único que na primeira teste rodou 100%, sem nenhuma falha.
A versão de avaliação expira em 14 dias mas o script criptografado expira em 3.

Além de lhe elogiar e agradecer pelo artigo, estou escrevendo para que você (ou outro leitos do blog) possa me ajudar na seguinte dúvida:

De que maneira posso comprar o ioncube? Basta colocar o dinheiro na conta deles? É seguro? Como proceder para comprar software de empresas estrangeiras de um modo geral?

Desde já agradeço.

hellen.lemos@hotmail.com

Jackson Caset Autor do Post
21

Hellen,

Obrigado pelo elogio e pela participação.

Bom, infelizmente não sei lhe dizer nada a respeito do ioncube, até mesmo pq não o conhecia, porém, creio que a compra pode ser tranquila, basta que vc faça uma boa pesquisa acerca da empresa (para conhecer mais sobre sua reputação, inclusive no Brasil), questione as formas de pagamento disponíveis e quais as garantias que oferecem.

Não posso lhe dizer que é algo 100% seguro. Até mesmo em lojas perto da gente existem calotes, no entanto, me pareceu uma empresa séria e que vende um produto interessante.

Se mais alguém quiser comentar a respeito, fiquem a vontade.

Grande abraço

Hellen Lemos
22

Olá Jackson.

Comprei o ioncube. Foi tranquilo. Passei o número do cartão e em 5 minutos recebi o link por emal pra fazer o download.

O programa faz o que promete. Muito bom.

Recomendo a todos.

Obrigada pelas dicas.

Renato
23

Gente essas empresas de “Desenvolvimento de sites” principalmente as “fundo de quintal” ficam copiando sites, olhando seu código de fonte, explorando seus arquivos. Então é muito importante a Criptografia desses códigos. Para própria segurança do seu cliente e da privacidade.
Eu particulamente conheço muitos “Programadores” curiosos, e sempre ficam olhando o codigo de fonte, preocupado se a pessoa usou CSS ou Tabelas. E uma chatisse que so deus.

MAS RECOMENDO TODO MUNDO PROTEGE SUAS PAGINAS CONTA COPIADORES.

kiver
24

a melhor coisa a ser feita e barata no meu caso, é criar um subdominio para armazernar somente o core do seu sistema, oque seria suas libs, js, e arquivos .php inportantes, fica fácil para manutenção e um cara que não tenha sua senha nunca conseguirá copiar teus fontes :D

Lucio
25

Hellen, infelizmente o Ioncube existe um programa que decompila a criptografia, eu testei, não é 100% a decompilação, porem da pra pegar muitas partes e corrigir os erros sem maiores dificuldades.

Dessa lista que foi apresentada, apenas o PHP LockIt não encontrei problemas com “hack” e ou scripts.

E ele é bem simples e barato.

Minha intenção é ajudar e não prejudicar, por isso não vou divulgar nome do programa que descriptografa (obs: esse programa tambem é pago 15$ por arquivo, o free só deixa 5 arquivos)

Obrigado pela dica Jackson, seu tópico me ajudou muito!

Lucio
26

Não sei se pode colocar dois comentarios seguidos, mas o anterior não da pra editar =/

Queria falar que acabei encontrando problemas no PHP LockIt… é mais facil que os outros programas pra decodificar… Acabei descobrindo agora pouco. um simpres base64_decode revela toda a magica…

Vou continuar minha busca :)

Diego
27

Desculpa por esta indo em um caminho contrario.
A empreza que trabalho tinha uma tercerização do serviço de TI
Hoje chegaram a conclusão que precisavam de uma mão de obra especializada no quadro de funcionario deles para cuidar apenas dessa questão de TI.
Pois bem sobro para mim. Mas como ja esperava os problemas descobri o mais grave o software de ERP esta criptografado pelo lock it base64_decode e ja baixei até o phpunlock it porem sem sucesso gostaria de saber se tem como eu reverter essa criptografia???

Vlw.

rogério
29

Muito bacana o post.
Vou até colocar uma outra situação para que os colegas…
Seguinte: depois de árduas horas de trabalho pra vc entregar seu trabalho nas mãos de gente que depois “pode” repassar ao sobrinho, é no mínimo sacanagem, desvalorização do profissional. Sabemos que existe a ignorância de gente que pensa apenas pelo preço baixo pq “qualquer” sobrinho faz ou mantém depois.

Em cima disso e vcs podem me esclarecer:
1º criptografando o código, mesmo que baixando os arquivos pelo servidor ninguém vai conseguir “abrir”, ainda mais um sobrinho,certo?
2º Dúvida recorrente, criptografar prejudica na indexação do site, no Google?(pq dá pra criptografar até o HTML,né!)?
3º Os direitos autorais da questão…alguém que tenha criptografado o código, ou que conheça alguém, existe alguma prática recorrente ou algo que diga que parte do código tem seus direitos reservados ao programador?Enfim, algo que justifique a criptografia de todo o php, pq me parece lógico que se faça isso pelas rotinas criadas (particulares), mas que há a valorização do trabalho tb diante da suposta entrega do trabalho onde depois vai cair nas maos do sobrinho e aí vc deixa criptografado. Olha, nao sei se é certo fazer isso, mas que adorei a ideia qdo ouvi, adorei.

Vlw

Márcio Simão
30

Acessei a página recomendada pelo Walter e vi que a segurança do PHP LockiT! foi quebrada em 10 minutos… Vida cruel a nossa de desenvolvedor PHP, é difícil encontrar uma ferramenta alternativa ao Zend Guard.

Parabéns pelo artigo, Jackson!

arthur
32

Esse PHP Los funções dele pckIt! é tudo de bom,pq,vc pode usar todas aor 30 dias…
É só escolher o diretório com seus scripts e criptografar, que os arquivos não vão perder as funcionalidade…

Ivan
33

Galera sobre a criptografia acredito que seja algo em casos extremos pois o objetivo maior é inibir que sobrinhos possam ter possibilidade de copiar o sistema até pq dependendo da criptografia o mesmo poderá até copiar o sistema criptografado em outro site e utilizar em um site similar, o melhor seria algo como uma chave de segurança em criptografia md5 do nome do servidor do site e algum gancho que sempre faz referência a essa chave antes de arrancar o sistema no login, sei que alguém com um conhecimento maior pode tirar essa tranca mais a grande maioria dos sobrinhos não até pq quem tem conhecimento suficiente faz seu próprio sistema pq não existe coisa pior que pegar o sistema dos outros e tentar entender como funciona, para melhorar a segurança essa chave poderia estar em seu servidor, outra coisa legal também é criar um log onde vc saberia todas as ações do sistema e onde ele está sendo utilizado o servidor e assim caso estiver em um site diferente você toma as providências, comigo aconteceu algo similar fui contratado para trabalhar em uma empresa e desenvolvi todas os gerenciadores de conteúdos dos clientes, em um certo momento percebi uma manobra do chefe para me colocar de escanteio perguntando sobre detalhes do sistema que somente um desenvolvedor precisava saber, sabendo disso adicionei um item a mais de segurança que me permitia ter acesso a qualquer sistema desenvolvido por mim em qualquer lugar, e assim ocorreu fui afastado da empresa e lá adicionaram um “primo” que simplesmente copiava meu sistema tudo que fiz foi acessar cada sistema criado depois da minha saida e deletar todo o código, sei que existe várias questões sobre ética profissional mais me desculpe não sou capaz de ver alguém se utilizando e ganhando em cima do meu trabalho, resultado a empresa voltou a entrar em contato comigo fizeram um acordo e me pagam uma taxa a cada replica do sistema, só lembrando que esse script que dá acesso ao sistema foi em um caso extremo pois isso pode comprometer a segurança do site do cliente se for feito de maneira incorreta, em fim vamos fazer o possível para que possamos nos proteger de clientes e espertinhos e assim valorizar o nosso trabalho…

Carlos
36

Saudações a todos!

Não li todos os Posts , mas um dos recursos que o PHP Lockit possui é o de, além de ele “amarrar” o uso do Script para um ou mais IP´s, ele ainda bloqueia o uso para outro nome de domínio. Encriptar o Script não evitaria o uso do mesmo, pois apenas evitaria ou dificultaria a alteração de um sistema. Acabei um projeto que levou uns 2 anos para terminar e uso o PHP lockit. O custo/benefício é excelente.

Bruno
37

SE VOCE PENSA QUE VAI ESTAR SEGURO COM SEU CODIGO, NÃO SE ENTUSIASME MUITO NÃO. EXISTEM PROGRAMAS E SITES NA INTERNET QUE CONSEGUEM DESCRIPTOGRAFAR SEU CODIGO RAPIDINHO, O QUE VOCE DEVE FAZER É TORNAR SEU CODIGO O MAIS COMPLEXO POSSÍVEL E BOTAR O MAXIMO DE TRAVAS POSSIVEIS ASSIM SOMENTE UM GRANDE CONHECEDOR DA LINGUAGEM DE PROGRAMAÇAO POSSA DECIFRALO, USE BASTANTE FUNÇOES NOS SEUS CODIGOS PHP DEIXE E DEPOIS CRIPTOGRAFE COM IONCUBE V7 OU SUPERIOR AI SIM VOCE VAI ESTAR 70 PORCENTO SEGURO.

Carlos Freire
38

Oi, Jackson:
Estou na mesma situação que vc. descreveu no início deste post. Depois de googlar por aí, não cheguei a conclusão definitiva alguma, por isto pergunto: você ainda continua indicando (ou com a mesma opinião de 2008) o PHP LockIt?
Pelo que pude entender, me parece que ele cumpre muito bem a função de atormentar sobrinhos (o que já é alguma coisa), mas nada mais que isso… Confere?

Neivaldo Chaves
40

Estou desejando aprender PHP. Se eu fizer um script em PHP , digamos um programa comum que nã seja um site ou blog, esse programa poderá rodar num computador que não esteja conectado a internet?
Se puderem me envie resposta para o e-mail, neivaldochaves@uol.com.br.
Abraços e obrigado

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

*

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>