← Segurança

Como proteger tema Wordpress com código de activação?

Lida 8749 vezes

Offline

guisantos 
Membro
Mensagens 388 Gostos 0
Feedback +7

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Olá pessoal,
Estou a desenvolver um tema em wordpress e gostaria de saber se alguém aqui sabe como faço para proteger o tema com código de activação.
Eu pensei em guardar ficheiros importantes do tema no meu servidor que só permitiria acesso a esses ficheiros caso a copia tivesse licença mas estou com receio que não seja possivel, se alguém me souber tirar essa dúvida ou até mesmo desenvolver essa parte agradecia.
Offline

Rogério Moreira 
Editor
Mensagens 1313 Gostos 11
Feedback +15

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Nineth year Anniversary Eighth year Anniversary Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

Tipo askimet?
Offline

guisantos 
Membro
Mensagens 388 Gostos 0
Feedback +7

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

tipo quando compras um tema e tens de colar o codigo de activação para o tema funcionar.
Offline

diogoosorio 
Membro
Mensagens 134 Gostos 1
Feedback +1

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Askimet não é um bom exemplo. Isto porque o serviço deles não é mais que uma API - o valor não está no "plugin", está sim no mecanismo que eles desenvolveram para detectar SPAM (e que está alojado apenas e só nos servidores deles, não é distribuído).

PHP é interpretado, a linguagem nem sequer é compilada. A única maneira de protegeres o código é ofuscando-o: podes inventar 30 por uma linha, códigos de activação (em que o tema só é disparado se se conseguir autenticar contra um servidor teu), ficheiros que funcionem como um certificado (que sigam um qualquer tipo de encriptação teu, o qual tenha de ser válido para o tema correr).

No fim do dia, como tens de oferecer o código do tema, qualquer tipo que saiba PHP com um maior ou menor esforço consegue ultrapassar a protecção (nem é necessário reverse engineering, basta encontrar o pedaço de código que trata disso e alterar-lhe a lógica).

A única solução +/- eficiente são algumas soluções comerciais para ofuscares código. Já utilizei Zen Guard e IonCube. A ideia é ofuscares partes do código críticas para a validação de autenticidade do software e algum código essencial ao funcionamento do tema.

Esta solução tem claras desvantagens e não me parece ser (nada) viável para a comercialização de um tema:

  • O facto de ter de recorrer a uma API tua para ter de instalar ou utilizar o tema, para mim, seria factor imediato para não comprar o que quer que fosse. Quem me diz que amanhã não "desapareces" e o dinheiro que investi no tema, capuff...
  • O facto de ofuscares código impossibilita-me de o alterar. É um modelo de licenciamento perfeitamente válido, no entanto pela natureza do software que é (um tema) eu vou querer alterar coisas. Não o poder fazer seria suficiente para descartar imediatamente a tua solução.

Voltamos à velha história, para travares cópias ilegais vais ter de retirar valor ao teu produto (e imenso valor, no teu caso). E a verdade é que ao fim do dia, se o teu tema for realmente bom e se alguém tiver interessado em o distribuir - mesmo recorrendo a IonCube ou ao que tu quiseres, haverá sempre alguém que consegue contornar o sistema.

Dito isto, não me parece que seja solução para o teu problema. Se no entanto é um caminho que queiras explorar, algumas alternativas:

http://www.phpclasses.org/package/2298-PHP-Generate-PHP-application-license-keys.html
http://www.phplicengine.com/

Boa sorte!
Offline

Rogério Moreira 
Editor
Mensagens 1313 Gostos 11
Feedback +15

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Nineth year Anniversary Eighth year Anniversary Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter

Askimet não é um bom exemplo. Isto porque o serviço deles não é mais que uma API - o valor não está no "plugin", está sim no mecanismo que eles desenvolveram para detectar SPAM (e que está alojado apenas e só nos servidores deles, não é distribuído).

Não tinha conhecimento disso. Mas fico aqui a correção  :grin:

Abraço e obrigado.
Offline

guisantos 
Membro
Mensagens 388 Gostos 0
Feedback +7

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

e por exemplo um ficheiro css ou mesmo imagens do tema fossem alojadas num servidor meu que só respondia se verificasse que o tema estava coma licensa?
desculpa a ignorância.
Offline

Ivo Pereira 
Membro
Mensagens 661 Gostos 1
Feedback +7

Troféus totais: 27
Trófeus: (Ver todos)
Linux User Super Combination Combination Topic Starter Level 5 Level 4 Level 3 Level 2 Level 1 500 Posts

e por exemplo um ficheiro css ou mesmo imagens do tema fossem alojadas num servidor meu que só respondia se verificasse que o tema estava coma licensa?
desculpa a ignorância.

Só respondia como assim? Como querias limitar os recursos?

A parte do verificares se tem licença ou não, como já aqui foi referido pode simplesmente ser-lhe dada a volta, pois o PHP é visível, é só perceber a lógica.
Offline

cpdesign 
Membro
Mensagens 235 Gostos 0
Troféus totais: 21
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Por norma, para quem usa software OpenSource, espera-se que respeite a suas licenças.

Instala-se o software, testa-se, se gostar paga-se a fee ao autor, caso contrários simplesmente desinstala-se o programa.

O mesmo é esperado na utilização de temas e templates. Fazes a venda do template, onde as condições podem indicar que o tema só pode ser usado num domínio e não pode ser vendido.
Será que isso vai acontecer?? Quem compra não repassa o tema, não haverão terceiros a usar o tema sem permissão/compra??

É em momento como esse que as leis de protecção de direitos de autor começam a fazer sentido...

Tentando dar-te uma ajuda:
» Se reparares a maioria dos temas WP são demasiado complexos, e em 90% do casos não há necessidade disso. Pode aumentar a complexidade do teu tema criando imensas classes e imensos ficheiros para tornar a lógica mais difícil de perceber;
» Como foi indicado, ofuscas algumas classes e ficheiros não essenciais para a formatação, apenas que contenham lógica;
» Crias chaves de encriptação
» Ao venderes o tema, solicitas o nome de domínio, e envias uma chave encriptada
» As tuas rotinas de encriptação irão verificar se o tema está instalado com a chave correspondente ao domínio, caso contrário não funciona

Não é 100% eficaz, mas torna o processo de violação de direitos mais difícil e não necessitas de servidores para verificar os temas, nem do tema a fazer chamadas externas
Offline

Celso Azevedo 
Membro
Mensagens 3500 Gostos 38
Feedback +12

Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Eu não fazia isso, quem é que vai usar um tema pago que ainda assim tem limitações? Era melhor optar então por sites como o elegant themes ou o theme forest e não se metem com essas coisas :)

Também não recomendo que alojes partes do tema no teu servidor, isso vai-te dar muita despesa e se tens algum problema com o servidor todos os sites que usem o tema deixam de trabalhar ou ficam lentos.

É preciso também ver que quem trabalha a sério na internet tem dinheiro para comprar um wordpress theme, não recorre a sites manhosos que distribuem temas pagos cheios de links escondidos no footer. :)
Offline

diogoosorio 
Membro
Mensagens 134 Gostos 1
Feedback +1

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Ofuscar partes de um TEMA é asneira e vais-te dar mal se optares por este tipo de solução. Um TEMA é uma base de trabalho para construção de um produto final - não é de forma alguma o produto final em si.

Não tem lógica estares a impedir o acesso a partes essenciais do tema porque eu, enquanto programador, NECESSITO de ter acesso a esse código. Não é uma questão facultativa, basta o cliente pedir-me uma alteração qualquer que afecte esse pedaço de código para eu ter de lá ir mexer.

Não estás a comercializar uma aplicação final, nem um script completo. Ao venderes um tema estás a vender uma base para alguém construir alguma coisa por cima. Estás a assumir que o intuito daquilo que vais vender é exactamente ser modificável, não é em si uma solução final.

O mesmo se aplica a utilizar lógica complexa no código. Aconselho-te a tomares exactamente a abordagem inversa - código simples, funcional e de entendimento rápido. Abre tudo quanto possível. Caso contrário qualquer tipo com 2 dedos de testa foge a correr do teu tema (eu sei que eu certamente não quereria nada com ele).

Procura alternativas comerciais viáveis para lidar com a pirataria -  a solução aqui não me parece estar no código (porque mais uma vez o código tem de ser aberto, simples e facilmente editável - é esse o propósito de um tema)...

Boa sorte!
Offline

guisantos 
Membro
Mensagens 388 Gostos 0
Feedback +7

Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Obrigado pelo feedback, penso que me fiz explicar de alguma forma mal. Assim como quando compro um tema wordpress em sites como woothemes ou themeforest é necessário colar a key no painel de funções do tema.
Estão a falar que não tem lógica comprar um tema e ainda ter de pagar a key?, o tema que vou comercializar não é para oferecer como os que se vê no site da wordpress é um tema premium que pretendia comercializar na venda de licenças. Mas como reparei é complicado ultrapassar a rapaziada nulled, mesmo que ele venha a ser nulled não poderão aceder ao suporte técnico e ás actualizações.
Vou ter de arriscar.