Como ocultar o meu código Javascript

Aprenda uma forma simples de ocultar o seu código javascript de bisbilhoteiros
Praticamente todo desenvolvedor web já passou por este problema. O javascript é hoje, uma das principais linguagens de programação da internet, e muitas vezes, nós desenvolvedores precisamos criar aplicações mais complexas usando a linguagem. E após horas de estudo e dedicação, surge aquela necessidade do PHP…esconder o nosso código para que ninguém possa copiá-lo, já que o javascript permite ser copiado direto pelo navegador. Veja aqui uma solução simples para ofuscar totalmente o seu código, tornando o praticamente impossível de ser decifrado.

Bem que o Javascript poderia ser como o PHP….eu já pensei, e provavelmente você programador web já pensou também. Só de saber que todo o nosso trabalho em javascript ficará visível para qualquer um, paramos e pensamos duas vezes antes de usar uma linguagem client-side. Recentemente,  tive problemas com uma aplicação javascript que desenvolvi…plágio. Então comecei a pesquisar sobre o assunto e cheguei a um veredito..

Não é possível esconder 100% o javascript, pois o mesmo é processado diretamente no navegador…
Entretanto, é possível ofuscá-lo. Assim o seu código fica praticamente impossível de ser entendido.

 

Etapa 1: Comprimir o seu javascript

Acesse o site http://javascriptcompressor.com/, insira o seu código-fonte e clique em compress. Isso ajudará o seu código a ficar com um tamanho reduzido, pois esta ferramenta irá retirar espaços em brancos, tabulações e comentários. Recomendo que mantenha uma versão salva do código original:

comprimir-javascript

Ferramenta para comprimir código Javascript

Etapa 2: Ofucamento de código

Aqui está a solução para este problema. O site http://www.javascriptobfuscator.com/, faz algo que muitas ferramentas online não faz. Ele ofusca o seu código javascript com a função eval, e deixa-o totalmente imcompreensível para humanos. Até existem outras ferramentas ofuscadoras, mas esta que encontrei é a melhor de todas, pois a mesma não permite a descriptografia…

Para utilizá-la, cole o seu código no campo Input, desmarque a opção “Move Strings” e clique em “Obfuscate

Ofuscamento de código Javascript

Ferramenta online para ofuscamento de código javascript

Após isso, o seu código criptografado será gerado no campo “Obfuscated“.

Etapa 3: Usando uma 2ª criptografia

Para dificultar ainda mais a visualização do seu código javascript, podemos usar uma segunda ferramenta online para criptografar / ofuscar o nosso código javascript. Basta acessar o site http://www.phpblog.com.br/exemplos/encodejavascript/, colar o seu código anteriormente criptografado, escolher a forma de criptografia e clicar em “codificar“. Eu recomendo escolher a codificação “High ASCII”, deixar marcado a opção “decodificação rápida” e desmarcar a opção “caracteres especiais

Ofuscamento de código javascript

Ofuscamento de código javascript - 2ª Criptografia

Enfim…

Recomendo manter sempre uma cópia se segurança (backup) do código JS original, senão você mesmo não poderá entender mais o seu código, no caso de alterar alguma coisa dele. Apesar do ofuscamento de código dificultar muito a vida de algum espertinho que quer copiar o seu código, ainda é possível decodificar. Entretanto, a pessoa tem que ter muita paciência, horas e horas disponíveis e o fundamental, tem que ser muito, mais muuuuiiito bom em programação e engenharia reversa. Ou seja, 99.9% dos usuários e programadores desistirão ao ver o código criptografado.

Espero que a minha matéria seja útil.

Lucas Peperaio

Estudante de Ciência da Computação, trabalho com desenvolvimento web há 5 anos e com hardware há 8. Nas horas vagas, sou entusiasta de Overclock, Casemod e Benchmarks, além é claro dos Games. Apaixonado por informática e pela vida, procuro compartilhar meus conhecimentos e assim, ajudar as pessoas. Siga-me no youtube, posto semanalmente muito material sobre Hardware, tecnologia e games em geral: Clique aqui

Receba gratuitamente em seu E-mail
Novos artigos do meu Blog!


Após o Cadastro você receberá um Email Automático. Clique no link enviado para Ativar e receber as novidades.

Categorias do site





67 Comentários Deixe o seu

  1. Hugo

    Bom dia Lucas,

    Meu nome é Hugo (Codinome Linked) do forum de discussão da IMASTERS e entrei aqui por sua sugestão. Quero lhe agradecer por responder a minha questão lá no forum sobre como “Proteger código javascript e Php…”.

    Vou seguir suas sugestões acima, embora eu tenha baixado em minha máquina, um tal de JS BUILDER, mas como sou iniciante em PHP e JavaScript, não sei usá-lo e nem tão pouco achei um tutorial decente para ele.

    Desculpe-me por talvez fazer perguntas simplórias, mas tenho uma dúvida com relação ao que você expôs acima; por exemplo, eu ofusco o meu código JAVASCRIPT dentro de minha aplicação, mas ele vai ficar embaralhado dentro dela certo ao invês do código correto, então eu lhe pergunto, a minha aplicação vai executá-lo normalmente mesmo ele estando embaralhado dentro da aplicação?

    Abraços

  2. Lucas Peperaio

    @Hugo – Sim, esta é a idéia. Embora o código fique todo confuso, o navegador ainda consegue entendê-lo!
    Faça um teste simples, crie um script só com um alert, criptografe o mesmo e teste novamente. Verá que o alert ocorrerá da mesma forma.

  3. Hugo

    @Lucas Peperaio – Olá Lucas, boa tarde!

    Tentei fazer isso com o codigo extjs mas não funcionou. Eu segui as tres etapas mas não obtive êxito. Será que fiz algo errado…rsrs?

  4. Hugo

    @Lucas Peperaio – Lucas, desconsidere a minha última resposta, deu certissimo aqui, segui novamente as tres etapas e obtive sucesso, mesmo sendo EXTJS.

    Se me permite mais uma pergunta Lucas, alguns colegas meus me indicaram o tal de JS BUILDER, pois ele faria todas essas etapas que voce me sugeriu, só que não sei usa-lo. Qual a sua opinião sobre isso ? Voce conhece o JS BUILDER?

  5. Lucas Peperaio

    @Hugo – Então Hugo, eu não conheco o JS Builder, mas vou dar uma pesquisada sobre o assunto

  6. Hugo

    @Lucas Peperaio – Ok Lucas, fico aguardando sua resposta quando voce achar o momento apropriado.

    Parabéns pelo blog, ficou otimo.

    Abraços e fique com Deus

  7. marcelo vinicius

    COMO EU FACO PARA OFUSCAR E CRIPTOGRAFAR A TAG , por exemplo:

    quero que essa linha fique ofuscada. tem possibilidade?

  8. Lucas Peperaio

    @marcelo vinicius – você quer dizer ofuscar HTML? se for isso, não é possível ofuscar, somente comprimir.

  9. Pedro

    Lucas, enfim eu criei um sistema de login em javascript e como ele é muiiiiiiiiiiiiiito simples dava para facilmente exibir o login e senha [de testes, claro]. Então estava pesquisando sobre codificar, ofuscar java, aí vim para aqui. Até o momento em que eu criei o código ofuscado, tudo bem, mas quando eu testo no navegador [Google Chrome], eu digito certo o login e a senha só que quando eu clico em “Entrar” não acontece nada, como se não tivesse a função de logar!

    Me ajuda aew!

    • Lucas Peperaio

      Então pedro, eu não recomendo criar sistemas de login com javascript, e sim com PHP. Sobre o erro, talvez o seu código está faltando algum fechamento de tag, algum ponto-e-virgula..geralmente estes são os erros comuns

  10. Pedro

    Lucas, não se preocupa, achei outro método. Eu criei um arquivo .js, mandei para o html da página, e usei session de php para protegê-la. Obrigado pela iniciativa!

    • Lucas Peperaio

      Ok, interessante este método que você fez, você protegeu um arquivo Javascript com PHP Session? poderia mostrar como fez? =)

  11. Pedro

    Sim, mas depois eu mostro porque eu to saindo agr. Fiquei fazendo pesquisa o dia todo e depois eu mostro Ok?

    • Julio

      Ué Pedro? Você ia dizer como foi feita a sua solução usando PHP session… mas não voltou. E então? Conta pra gente como fazer?

    • Fábio

      Achei o que ele falou…

      http://www.jexsolucoes.com.br/cc/knowledgebase/10/Como-proteger-arquivos-de-javascript-e-css.html

  12. terrivel dilema

    Legal esta postagem vou proteger todos os meus js do meu site terriveldilema.com/nacionais.html obrigado

  13. William

    Cara, isso foi extremamente útil, não dá pra esconder 100%, mas com isso eu acabo com a vida de quem copia código fonte JS, Incrível.

    nota 11

    parabéns pelo belo artigo

  14. Fabio

    Cara, parabens pelo post, isso vai me ajudar muito, ainda não testei, mas pelos comentarios ja agradeço.

    Prescisava mesmo esconder meus java scripts, pois eles continham os caminhos para o php e quais variaveis ele prescisava para executar, e isso me trouxe insegurança, mas desde já agradeço muitissimo pelo post,

    Te adicionei aos meus favoritos pela exatidão em solucionar os problemas apresentados em seu post, é isso que o pessoal prescisa.

    MUITO OBRIGADO!!!

    • Lucas Peperaio

      Obrigado pelo comentário Fábio! fico feliz que pude te ajudar

  15. Mauricio

    Cara. Sensacional. Muito bom. Escondeu legal o código.

    Parabéns MESMO pelo post.

  16. DIego

    Excelente post, me ajudou muito. Valeu!

  17. PAND

    MUITO BOA!

  18. Fabrício

    Opa!

    O js ofuscado fica muito maior que o código original, no seu exemplo, um simples alert se tornou um codigo de 6 linhas. Isso pode acarretar alguma perca de desempenho na sua pagina web (pensando em ofuscar ~1000 linhas de js)?

    abraço

  19. Sandro Macedo

    Muito bom!

  20. mayra

    Eu queria ocultar o anuncio do header somente na pagina principal. tem como isso no wordpress?

    • Lucas Peperaio

      Tem sim Mayra, você precisará editar o arquivo header.php através do WordPress > Aparência > Editor. Lá, você precisará digitar um código PHP em torno no código do anúncio.
      Por comentário eu não consigo te passar esse código, mas vou te mandar por e-mail.
      Sugiro que antes de editar, faça uma cópia do conteúdo do arquivo header.php e salve num bloco de notas, assim se acontecer algo de errado, é só regravá-lo novamente.

      • Mayra

        Muito obrigado Lucas, sei que às vezes não dá tempo para ajudar as pessoas, mas o código que me passou por e-mail foi certinho. Vou até deixar aqui registrado da forma que pesquisei até te encontrar.

        Como esconder anuncio na pagina principal e mostrar nos outros post como ocultar anuncio na home page wordpress como esconder anuncio no header para pagina principal

        Obrigado querido.

        • Lucas Peperaio

          Fico feliz que tenha dado certo Mayra, fico aqui a sua disposição ;) Abraços

  21. Djefferson

    Perfeito!! Só usando os 2 primeiros já tinha ficado bom! Mas com o terceiro ficou ainda melhor… agora ninguem vai conseguir achar a password do meu site ^.^

    • Lucas Peperaio

      Djefferson, não recomendo esconder passwords com javascript.

  22. Axel Guedes

    Caro Lucas,

    esse assunto me é muito interessante, mesmo não sabendo ainda programar. Portanto, tenho uma pergunta de leigo :) Após ter feito todo o processo, devo colar o código já “empacotado” no bloco de notas e salvá-lo como js? É isso? Só falta isso agora para eu conseguir essa façanha!

    • Lucas Peperaio

      Sim, após empacotar, você pode usar o código normalmente.

      • Axel Guedes

        Caro Lucas,

        Sou grato pela sua natureza de sempre nos responder. Perdoe a minha falta de conhecimento. Devo colar o código já “empacotado” no bloco de notas e salvá-lo como js ou o coloco no html diretamente? Desde já, lhe agradeço!

        • Axel Guedes

          Lucas, nem precisa liberar essa mensagem, se preferir, mas, por favor, me responda à pergunta se devo, antes de utilizar o código empacotado, colá-lo no bloco de notas e salvá-lo com extensão js. Grato!

        • Lucas Peperaio

          Você pode fazer das duas formas, ou em um arquivo JS independente, ou no HTML, com a tag

  23. Hugo

    Olá Lucas, tudo na paz?!

    Deixa eu te fazer uma pergunta, você conhece o software pago JavaScript Obfuscator? E se conhece, você poderia me dizer se ele é confiável?

    Abraços

  24. Douglas

    Sabia que o javascript desses grandes sites não era fruto de uma programação fodastica, tinha que ter algo a mais. Isso vai ajudar bastantes, valeu cara.

    • Joao Paulo

      Realmente gostaria de uma solução para que não copiassem meu site em extjs, porem estas solucoes de comprimir o fonte em .js e usar obfuscator nao funcionam mas a muito tempo. Olhem este site, existem vários deles pela net (http://jsbeautifier.org/) nada mais é que um desobfuscator.

      • Lucas Peperaio

        Sim, ofuscar o código é apenas um meio de dificultar para os iniciantes. Programadores com um pouco mais de experiência saberão decodificar o código.

  25. Kelvin Alves

    Ótimo post!! Obrigado!

  26. cayo

    Ótimo post! Gostei muito e o resultado é incrivel!

  27. Giovani Silva

    Olá Lucas Peperaio… Gostei muito de seu post sobre como ocultar o código javascript usando ofuscamento, criptografia,…

    Porém não consegui chamar a função do meu código quando está ficou como EVAL. Tinha uma função que eu chamava no onload da página mas agora ela não é acionada.

    Poderia me ajudar a como chamar a função que ficou agora eval(function(p,a,c,k,e,d){ …

  28. Giovani Silva

    Boa tarde Lucas Peperaio… acho que descobri o porque não estava funcionando o código javascript ofuscado no meu caso. Dentro do javascript eu chamo um código PHP e deve estar interferindo. Vou fazer mais uns testes para chamar o PHP em outra função. obrigado

  29. Guerino Rodella

    http://deobfuscatejavascript.com/ Fácil, fácil de se conseguir o código quase limpo de novo. =\

  30. yure carvalho silva

    posso usar essas táticas com Jquery tbm?

  31. Diego

    Olá Lucas, seu post é bem interessante e me ajudou bastante, parabéns, só que tem um porém, se você pegar o código ofuscado e colocar neste site http://jsbeautifier.org/ o código fica praticamente idêntico ao original, uma solução que encontrei seria você primeiro criptografar pelo do passo 3 ( http://www.phpblog.com.br/exemplos/encodejavascript/ ) e depois pelo site do passo 2 ( http://www.javascriptobfuscator.com/ ), assim se você jogar novamente no site que citei acima, ele fica todo embaralhado e praticamente impossível de ler. Essa seria a solução que encontrei, um ponto a considerar seria que fazendo desta forma o código java script fica bem maior o que poderia resultar em perda de performasse, mais como se diz por ai, ninguém pode ter tudo na vida.

    Abrs.

  32. Leandro

    Boas Lucas, Eu fiz o seu segundo passo para codificar com High ASCII no entanto nao consigo correr o codigo em asp.net. Ja retirei o mas mesmo assim nao funcina. como é suposto colocar aquele codigo eval….. no programa?

    • Lucas Peperaio

      Não entendi bem sua última pergunta. Infelizmente não sei o que pode estar acontecendo, pois não tenho experiência em ASP.NET

  33. Marco

    Ótimas dicas. Resolveram meu problema.

  34. Wagner

    Olá amigo achei está matéria segui os passos e não deu certo acredito que o meu script é para exibir o video e por isso não rola. O problema que acontece comigo é o seguinte tenho este script do JW Player

    //

    eu queria era somente mascarar o endereço do video .mp4 que é esse “file:’http://meuendereco.com/video/videp1.mp4′,” para que o endereço não sejá mostrado no código fonte, gostaria de saber se você tem alguma maneira de mascarar isso.

    Obrigado pela atenção!

  35. Wagner

    Olá amigo achei está matéria segui os passos e não deu certo acredito que o meu script é para exibir o video e por isso não rola. O problema que acontece comigo é o seguinte tenho este script do JW Player

    “// ”

    eu queria era somente mascarar o endereço do video .mp4 que é esse “file:’http://meuendereco.com/video/videp1.mp4′,” para que o endereço não sejá mostrado no código fonte, gostaria de saber se você tem alguma maneira de mascarar isso.

    Obrigado pela atenção!

  36. Thompson Cysneiros

    Obrigado!! Me ajudou muito! Estava tendo problema muito grande com uma senha exposta no código fonte. Agora desta forma fica indecifrável, haja vista que modifiquei o código 2 vezes.

    Valeu irmão!

    Thompson

  37. Carlos

    Excelente artigo, muito bom mesmo !! Caso alguém precise de codificar PHP aqui também vai uma dica:

    http://f7sistemas.com.br/site/servicos-on-line-gratuitos/criptografe-php/

    http://construaseusite.com/site/ferramentas-on-line-gratis/critptografe-seu-php

  38. jHONATAN

    Olá amigo. Meu problema é que na ult codifiação, quando eu colo o result dentro de , o resto do codigo fica bugado, como se nao tivesse terminado aspas… sera que voce poderia me ajudar?

  39. Miguel

    Ótimo post, bem explicado e de simples compreensão.

    Meus parabéns!

  40. Marcelo

    Muito bem Lucas, apesar de ser um tutorial “antigo”, ainda funciona muito bem, obrigado.

  41. adailton lucas de almeida

    sera que tem como fazer isso com codigos html5 onde tem as tags ctx.drawimage(); ?

  42. Paulo Saturno

    Muito obrigado pela dica, aqui consegui montar uma página em html5, ficou perfeito, sei que não é o mais recomendável, mas não queria usar nem banco de dados e php ou algo mais rebuscado, tive trabalho para os processos em algumas etapas, ma no final funfou beleza, um exemplo era que se no código estive algo com acentuação, não funcionava, fui acertando e funcional 100%, testei até na dica do site do Guerino Rodella, mas só mostrou o código mas nada das informações principais e somente realizei o procedimento com o javascript da página, valeu e um abraço a todos.

  43. Jorge Luiz F. Dias

    Parabéns!!! A matéria me ajudou muito!!! Show!!!

  44. Dalson

    Muito bom. Funcionou certinho, meu codigo agora está ininteligivel………

  45. snes

    essa obfuscação na verdade só troca o nome de strings e de variaveis por um texto que não faça sentido para que o ser humano visualmente compreenda o codigo. mas as sintaxes e logicas continuam intactas. se a pessoa com muita experiencia em javascript e ótimo raciocionio logico ,quiser, ela plageia seu codigo, de forma mais dificil, mas consegue.

    o ideal é não usar suas funcoes mais preciosas em javascript.

  46. Paola Ferreira

    Parabéns !!! também recomendo criptografarjavascript.blogspot.com.br

  47. paulo

    as tentativas são em vão para textos,pois ao abri a pagina pelo firefox junto com frontpage,basta apenas copiar a seleção e um novo texto vai ser editado em uma nova página… Não existe como esconder o codifo fonte..

  48. Fabiane Akemi

    Eu tenho usado esse aqui na empresa https://javascriptobfuscator.herokuapp.com/ ele protege e dá pra travar o código para rodar somente num domínio específico.