Proteger código PHP

420 views
Skip to first unread message

gaido

unread,
Jun 13, 2012, 10:49:59 AM6/13/12
to list...@googlegroups.com
Alguém distribui seu código-fonte PHP com alguma proteção?

Fábio Fernandes

unread,
Jun 13, 2012, 10:57:58 AM6/13/12
to list...@googlegroups.com
Eu ainda não, mais sei que a ZEND tem uma ferramenta pra isso.

2012/6/13 gaido <luisfern...@gmail.com>
Alguém distribui seu código-fonte PHP com alguma proteção?

--
============================================================
JQUERY MAGAZINE > http://www.jquerymagazine.com.br
--
PHP MAGAZINE > http://www.phpmagazine.com.br
--
LISTA NODE.JS > https://groups.google.com/group/lista-nodejs?hl=pt-br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================



--

Fábio Fernandes - Web Design / Programador
Fones: (81) 8694.7290  / 9900.0941 
 Portfólio Online acesse o site

Luis Fernando Gaido

unread,
Jun 13, 2012, 10:59:06 AM6/13/12
to list...@googlegroups.com
Verdade e deve ser muito bacana. E gratuito?

2012/6/13 Fábio Fernandes <jfab...@gmail.com>



--
Luís Fernando Gaido
Analista de Sistemas
PHP + MySQL + Ajax

"Em teoria, não existe nenhuma diferença entre teoria e prática. Mas, na prática, existe."

Norivan Oliveira

unread,
Jun 13, 2012, 11:00:50 AM6/13/12
to list...@googlegroups.com
ZendGuard, é pago, tem o ioncube e outros tb mas tudo pago e reversível pelo que dizem.

2012/6/13 Luis Fernando Gaido <luisfern...@gmail.com>



--
Norivan Oliveira
Analista de Desenvolvimento de Sistemas
Tel's / Phone's: +55 (31) 3318-7252 / +55 (31) 3273-4534
Web: brservidor.com / desenvolvimentoemarketing.com.br
"Não há destino que juntos não possamos fazer."

Elder dos Santos

unread,
Jun 13, 2012, 1:41:33 PM6/13/12
to list...@googlegroups.com
Aqui no trampo usamos ioncube.

Pra quase toda compilação existe um descompilador, então não estamos esquentando com isso não.
Não tivemos diferença de performance nenhuma, só uma extensão do ioncube teve que ser instalada no servidor.

Luis Fernando Gaido

unread,
Jun 13, 2012, 1:44:48 PM6/13/12
to list...@googlegroups.com
Entendi, Elder. Eu estou pensando em vender a distribuição e evitar que seja copiado e revendido sem minha autorização pelo usuário médio.

2012/6/13 Elder dos Santos <elderd...@gmail.com>

Jairo Silva

unread,
Jun 13, 2012, 2:03:09 PM6/13/12
to list...@googlegroups.com
atualmente utilizo ioncube dependendo de quanto o cidadão estiver disposto a pagar pra decompilar o codigo até é possivel, mas  em alguns casos é muito caro, vi alguns sites que fazer determinado serviço, mas prefiro pensar que meus clientes não o farão, pra garantir que apenas o cliente que comprou o sistema seja o unico tenho 3 servidores de autenticaçao e validaçao do sistema e forneço ao cliente um arquivo que o mesmo pode baixar ou solicitar por email que é colocado na pasta da licença. com isso garanto que cada cliente utilize somente o que é seu, sem falar que atraves deles posso enviar mensagens e atualizaçoes atraves desse serviço! 
Atenciosamente,

Jairo

Luis Fernando Gaido

unread,
Jun 13, 2012, 2:05:27 PM6/13/12
to list...@googlegroups.com
Jairo, muito bacana e profissional. Então vale a pena ioncube. É caro? É por instalação de servidor que você paga?

2012/6/13 Jairo Silva <jairo...@gmail.com>

Fernando Wobeto

unread,
Jun 13, 2012, 5:29:48 PM6/13/12
to list...@googlegroups.com
Utilizamos o sourceguardian...mto bom também

Jairo Silva

unread,
Jun 13, 2012, 8:31:02 PM6/13/12
to list...@googlegroups.com
Bom o valor é em dolar o basico que é o que uso custa 199 dolares podendo custar até 399 (completaço com licenciamento trial, bloqueio por mac, gerador de instalaçao e tudo mais) suei um pouco pra comprar pois alguns clientes tiveram os sistemas com o código aberto mas atualmente todos possuem os sistemas protegidos devido a questões de atualizaçoes a licença é por maquina, quanto aos clientes nao precisa se precopar, voce tendo a licença do encoder voce pode distribuir seu código a vontade!
Atenciosamente,

Jairo



2012/6/13 Fernando Wobeto <fernand...@gmail.com>

Luis Fernando Gaido

unread,
Jun 13, 2012, 9:11:33 PM6/13/12
to list...@googlegroups.com


2012/6/13 Jairo Silva <jairo...@gmail.com>
Bom o valor é em dolar o basico que é o que uso custa 199 dolares podendo custar até 399 (completaço com licenciamento trial, bloqueio por mac, gerador de instalaçao e tudo mais) suei um pouco pra comprar pois alguns clientes tiveram os sistemas com o código aberto mas atualmente todos possuem os sistemas protegidos devido a questões de atualizaçoes a licença é por maquina, quanto aos clientes nao precisa se precopar, voce tendo a licença do encoder voce pode distribuir seu código a vontade!
Atenciosamente,

Jairo

Beleza, vou ver se gosto do trial.

Luis Fernando Gaido

unread,
Jun 14, 2012, 8:05:30 AM6/14/12
to list...@googlegroups.com
Eu achei fantástico o IonCube. Eu usei a versão online de teste dele aqui, configurei a DDL no Windows pro PHP ler, criptografei uma pasta importante, substituí a pasta  e rodou com a mesma performance. Muito bacana!
Eu não distribuo muitos softwares por enquanto e julguei que para o meu momento profissional, vale a pena comprar créditos no site do IonCube e usar a versão online para criptografar as distribuições à medida que eu for entregando.
À medida que eu for ficando rico (AUHAUAH, vai nessa...), pensarei em comprar um licença, mesmo.

Eu instalei o SourceCop, mas fica EXTREMAMENTE LENTA a execução do código. Não usaria nem ferrando em produção isso. Agora o IonCube é excepcional. Gostei demais.

Luis Fernando Gaido

unread,
Jun 14, 2012, 9:52:38 AM6/14/12
to list...@googlegroups.com
Jairo, eu tenho um pergunta pra você.
Quando você entrega a distribuição criptografada pra um cliente, como você cobra por isso e dá suporte?
Pergunto isso porque quando você entrega o fonte todo, teoricamente você não precisa de vínculo algum com a empresa. Já não entregando o fonte...

Jairo Silva

unread,
Jun 14, 2012, 12:21:40 PM6/14/12
to list...@googlegroups.com
eu e meu amigo que tenho parceria cobramos da seguinte forma, temos dois meios um é a venda direta ou seja paga x e pega o sistema com uma licença eterna e vez ou outra paga por atualizaçao e por suporte.
a outra forma é pagar x pela licença e mensalmente por suporte no caso de aplicaçoes mais especificas!
no nosso caso o cliente compra o sistema e não os fontes!
Atenciosamente,

Jairo

Luis Fernando Gaido

unread,
Jun 14, 2012, 12:29:02 PM6/14/12
to list...@googlegroups.com
Entendi perfeitamente, Jairo! Excelente! Obrigado por compartilhar isso.
Eu vou passar a oferecer desta forma também, e estou pensando seriamente em compra o ioncube 7. Enquanto decido se compro ou não, vou comprando créditos com a conta do ioncube e criptografo de forma avulsa quando houver a necessidade. Se eu perceber que isso é seguro e está dando giro, pensarei em comprar a licença completa.

Estou com o trial por duas semanas aqui. Quais as funcionalidades que a sua licença de US$ 199,00 permite?

Jairo Silva

unread,
Jun 14, 2012, 12:31:11 PM6/14/12
to list...@googlegroups.com
o mesmo que o trial porém os arquivos encriptados nao expiram. já que os arquivos gerados pela aplicaçao em trial geram arquivos com data de validade!
Atenciosamente,

Jairo

Luis Fernando Gaido

unread,
Jun 14, 2012, 12:39:34 PM6/14/12
to list...@googlegroups.com
Bacana, Jairo!
Fiz uma estimativa do quanto eu gastaria para encriptar meu framework inteiro numa versão para um cliente, e sai em torno de R$ 15,00 cada vez que fizer isso. É claro que não pretendo fazer isso sempre: somente na entrega de um produto. Por enquanto farei dessa forma, mas muito provavelmente vou comprar uma licença igual à sua.

Jairo Silva

unread,
Jun 14, 2012, 1:05:22 PM6/14/12
to list...@googlegroups.com
Garanto que nao irá se arrepender, atualmente com tantos golpistas precisamos nos proteger, afinal de contas já vi diversas vezes pessoas reclamando que fizeram um sistema e o mesmo estava sendo revendido no Mercado Livre.
Atenciosamente,

Jairo

Luis Fernando Gaido

unread,
Jun 14, 2012, 1:13:49 PM6/14/12
to list...@googlegroups.com
Você está coberto de razão. Já me prejudiquei o suficiente com isso no passado e estou empolgado com a solução.

Luis Fernando Gaido

unread,
Jun 15, 2012, 10:31:36 AM6/15/12
to list...@googlegroups.com
Já comprei! Não aguentei a euforia! Mandei ver!
Contudo, ainda sedento por mais informações, encontrei num site internacional obscuro o e-mail de um cara que muito rapidamente obteve um exemplo de página minha criptografada e conseguiu me entregar o lindo, tabulado. Quase chorei. O alento é que ele cobra US$7,00 por página!!
O cara conseguiu fazer isso com a versão mais nova do ionCube: 7.0.9.
Achei fantástico, mas quase chorei. Adicionarei camadas a mais de segurança.

Gaba

unread,
Jun 15, 2012, 10:48:07 AM6/15/12
to list...@googlegroups.com
O IonCube talvez seja uma solução mais completa, não sei, porque nunca usei, MAS...

Tem o BCompiler do PHP que compila o código PHP. Claro que teria que fazer todo o framework trabalhar com arquivos compilados, mas pra quem está começando a criar algo, e não quer gastar, essa é uma boa solução.

Luis Fernando Gaido

unread,
Jun 15, 2012, 10:50:09 AM6/15/12
to list...@googlegroups.com
Pra mim, tarde demais! Prefiro acreditar que fiz um bom investimento, euheuhaa. Mas deve salvar a pele de outrém.

Jairo Silva

unread,
Jun 15, 2012, 12:03:17 PM6/15/12
to list...@googlegroups.com
Eu sei que existe isso, mas como trabalho com OO existem muitos arquivos e geralmente lanço a proteçao em todos os arquivos. logo pra funcionar com todas as funcionalidades tem que gastar um pouco, felizmente tem mais uma coisa a nosso favor, como vendemos os sistemas e os arquivos não ficam disponiveis para download nossos clientes não fazem o favor de entregar seus arquivos a qualquer um.
Atenciosamente,
Jairo

Luis Fernando Gaido

unread,
Jun 15, 2012, 12:09:30 PM6/15/12
to list...@googlegroups.com
Sim, Jairo. Depende do cliente. Se vendermos o sistema para pessoas que terceirizaram o código pra nós, eles são grandes interessados em manter o software em sua corporação, principalmente por revenda.
Agora se vendermos o software pra um cliente direito, como o negócio dele é outro, muito provavelmente não fará essa besteira.
Eu também vi aqui que esses serviços "negros" geralmente são muito caros e custam eventualmente mais do que o valor do sistema. E com técnicas de ofuscação, uma camada adicional é inserida.
Em resumo, a probabilidade de ser "assaltado" caiu bastante. Além disso, sempre há o bom e velho contrato, dando caráter legal à negociação.

Daniel Passos Martins

unread,
Jun 15, 2012, 12:09:44 PM6/15/12
to list...@googlegroups.com
Eu uso o nu-coder, esse eu nunca ouvi relatos de quebra.
Nós colocamos segurança somente em alguns arquivos, como por exemplo no arquivo vem validar a versão aqui no nosso servidor, nos arquivos que geram o financeiro, que geram NFe que fazem comunicação com os equipamentos de telecomunicações. Os formulários mesmo a gente não coloca.

Daniel


Em 15 de junho de 2012 13:03, Jairo Silva <jairo...@gmail.com> escreveu:

Luis Fernando Gaido

unread,
Jun 15, 2012, 12:12:58 PM6/15/12
to list...@googlegroups.com
É uma boa decisão, Daniel: fechar somente arquivos do núcleo, dando alguma flexibilidade ao cliente para customizar e o encorajando a aceitar o negócio. Eu estou pensando em fazer uma combinação dessas na hora de entregar.
Contudo, criptografar o maior número de arquivos acrescenta mais "custos" a um serviço negro desses.

Daniel Passos Martins

unread,
Jun 15, 2012, 12:24:41 PM6/15/12
to list...@googlegroups.com
Aqui Luis a gente tem 57 clientes espalhados pelo Brasil inteiro, geralmente pequenos provedores de acesso à internet, manter o código era um tormento.
O que fizemos?
Usamos o BZR (Bazar), no nosso servidor tem um script feito em php que entra em cada servidor e atualiza, sempre na madrugada, estamos trabalhando agora numa forma de atualizar o banco de dados de cada um, atualmente a gente o Navicat ele tem uma ferramenta pancada de atualização de estrutura das tabelas, caiu em 99% os chamados de suporte por conta de erros de atualizações.
O grande problema do Navicat eh que vc tem que entrar em cada servidor e atualizar na munheca o bd.

Eu aconselharia a todos usarem o bazar com o redmine que eh uma excelente ferramenta de gestão de projetos.
Vejam o anexo, que tem as versões que fez a hora etc.

Daniel
Natal/RN
tela.png

Luis Fernando Gaido

unread,
Jun 15, 2012, 12:35:17 PM6/15/12
to list...@googlegroups.com
Fantástico! Que estrutura bacana!

Daniel Passos Martins

unread,
Jun 15, 2012, 12:44:14 PM6/15/12
to list...@googlegroups.com
Pessoal, quem quiser usar uma estrutura semelhante a nossa basta perguntar que a gente ajuda a solucionar eventuais problemas de instalação que tivemos.
O RedMine por exemplo, eh feito em RoR (Ruby on Rails) e roda num servidor http chamado mongrel, o nosso aqui roda no apache mesmo.
O script de atualização eh bem simples, consiste numa tabela que tem todos os ips, usuario, senha, versão que está o cliente, e caminho dentro do servidor, tem o lance do caminho pq tem cliente que usa Fedora, Debian, Centos, FreeBSD, OpenBSD etc, no cron do nosso FreeBSD roda um script em php que lê essa tabela e sai em cada servidor atualizando, feito isso ele manda um email pra cada cliente falando das atualizações.


Daniel
Natal/RN

Luis Fernando Gaido

unread,
Jun 15, 2012, 12:46:02 PM6/15/12
to list...@googlegroups.com
Impressionante. Nunca sequer pensei nessa complexidade. Limitava-me a tentar hospedar sistemas no meu serviço de hospedagem, desencorajando muitos clientes que gostaria de ter aplicações dentro de sua corporação.

Daniel Passos Martins

unread,
Jun 15, 2012, 1:00:43 PM6/15/12
to list...@googlegroups.com
Luis tínhamos o mesmo problema, começamos a oferecer aos clientes um vps rodando a distro que ele quisesse.
Alugamos um servidor fora do Brasil e fornecíamos 4GB de Ram, HD de 50 GB, Um core do processador e 2 ips válidos pra eles fazerem DNS do registro.
Quando chegamos em 50 clientes (Tanto provedores como outros) resolvemos comprar um R720 da Dell, contratamos link da Intelig, demos entrada no nosso ASN e desenvolvemos uma ferramenta feita em php que gera a VM com a distro de escolha, hd, ram, ips, senha do root, servidor de correio, apache, tomcat, mysql, postgres, webmail, painel de revenda etc....
A ferramenta roda redondo, compramos uma penca de domínios de vps, estamos fazendo o site e estamos terminando a integração com a Cielo, quer dizer diretamente do site vc compra o VPS que quiser, paga, a rotina roda, cria td e lhe manda um email.
Dah pra ganhar em td com aplicações web.
Imagina ai, vc vender pro seu cliente um servidor só dele, que ninguém mais acessa, nem pelo browser que seja, o roteador do cliente disca um vpn pro servidor e correr pro abraço.
Ai vc já tah vendendo 2 coisas, o sistema e o VPS e cobre barato, não tem ninguém que bata o preço da gente nem no Brasil e nem fora.
Nós aqui da terra do Sol e do sal colocamos a cuca pra funcionar :)

Daniel
Natal/RN

Luis Fernando Gaido

unread,
Jun 15, 2012, 1:03:20 PM6/15/12
to list...@googlegroups.com
Orgulho!
Tem muito chão pra eu chegar nesse nível, ainda. Se é que eu vou chegar perto disso...
Basicamente, quero vender sistemas e cuidar das licenças também, além de ter o fonte protegido. Começando agora, fiotão.

Daniel Passos Martins

unread,
Jun 15, 2012, 1:07:21 PM6/15/12
to list...@googlegroups.com
Começamos em 2009 :)
As coisas foram acontecendo, pense como a TAM, td pra eles pode virar um produto. Eles chamam as poltronas da saída de emergência de assento conforto e vendem como produto, vendem a retirada de malas prioritárias como produto, vendem os assentos da frente como produto (pra vc não ficar esperando lá no fundo avião), td eh produto.

Daniel
Natal/RN

Luis Fernando Gaido

unread,
Jun 15, 2012, 1:08:28 PM6/15/12
to list...@googlegroups.com
Entendi perfeitamente!

Jairo Silva

unread,
Jun 16, 2012, 1:33:42 AM6/16/12
to list...@googlegroups.com
esses produtos da TAM nenhum deles eu tenho interesse, bom vamos aos casos, atualmente eu não uso, mas inseri no mesmo servidor de licenças um serviço de atualizaçao, como funciona, via cURL os sistemas sempre que acessam o servidor para verificar a licença e sua validade a maioria sem tempo determinado de validade verifica também se para aquele determinado sistema existem atualizaçoes disponiveis com base na ultima versão (nenhuma versão é saltada, também se sair alguma atualizaçao pra determinado cliente sai para todos, isso é bom para controle de versão nos clientes, o suporte também sempre é feito com base na ultima versão liberada, ou seja se o cliente possui versão antiga ou abaixo da ultima liberada o mesmo é orientado a atualizar a mesma (o sistema baixa automaticamente e informa no painel de admin) após a atualizaçao se o problema persistir o mesmo dá seguimento ao atendimento, após testes a versão ou arquivos corrigidos sao liberados para o servidor de atualizaçao que é basicamente o mesmo da validaçao da licença.

vou explicar pausadamente como funciona o sistema de licenciamento remoto,

são basicamente 2 servidores e um de backup.

o banco de dados é replicado manualmente   sempre que recebemos um novo cliente, processo simples e rapido atualmente.
o arquivo de licença geralmente tem validade de 2 dias para que o sistema possa verificar na validaçao se o mesmo é válido e se possuem atualizaçoes disponiveis.
se houver atualizaçao a aplicaçao baixa os arquivos e deixa um aviso destacado no painel de admin para que o administrador possa verificar o change log e decidir se é o melhor momento para fazer a atualização.

a licença possui uma sequencia matematica usando alguns caracteres, tipo de licença, validade da licença e é utilizado um hash para validar essas informaçoes.

entre outras coisas.
não é a soluçao complexa que o Daniel descreu, mas é perfeitamente funcional!!
Atenciosamente,

Jairo

Luis Fernando Gaido

unread,
Jun 16, 2012, 1:48:04 AM6/16/12
to list...@googlegroups.com
Eu estou curiosamente implementando um mecanismo muito similar para controlar licenças, com a diferença de que ainda não elaborei atualizações automáticas. Mas já consegui criar chaves criptografas com validade, além de travar por máquina também.
Eu utilizei um curioso mecanismo de validação de data. É claro que temos que acessar um servidor remoto para obter uma data confiável. Acesso o meu servidor web e ele informa a data.
Contudo, por eu estar querendo que os sistemas justamente possam trabalhar offline, não faço essa verificação de data remotamente o tempo todo. Essa checagem é feita com uma probabilidade de 10%. E se o servidor estiver fora do ar, eu dou uma tolerância de mil requisições "offline". Isso permite com que o sistema trabalhe offline se está havendo alguma intermitência de rede. De volta a rede, a chegagem bem-sucedida de horário no servidor zera essa mil requisições para a próxima.
Contudo, se o usuário espertinho quiser sair da rede para o sistema não checar que a data venceu, o sistema funcionará somente por mais essas mil requisições offline e trava.
Criei até uma tela em que o usuário precisa informar a nova chave, informada atualmente por mim por e-mail. Essa chave eu mando num arquivo que o usuário sobe em seu sistema.
Curiosamente, também uso informações na chave de licença, mas uso a criptografia MCRYPT_RIJNDAEL_256, que é o capeta. Mantenho nessa chave informações dos MAC Address que o sistema pode rodar, domínio se houver e a validade que é checada com o método descrito anteriormente.

Em resumo, dá pra ter sistemas offline em PHP com um controle de versão muito similar aos softwares Win32.

Não pretendo tornar esse meu negócio principal. Manter essa arquitetura demanda gente, gastos que eu não quero ter agora. Vou tentar manter sistemas online em minha hospedagem ou nas dos clientes e "abraçar" projetos irrecusáveis que o cliente não abre mão de ser offline por questões de opinião ou de arquitetura, mesmo.
Reply all
Reply to author
Forward
0 new messages