Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jose Dam

Como ocultar ou ofuscar o conteúdo do JS na página

Recommended Posts

Quem já escreveu algum js com requisições ajax sabe que, vez ou outra, é necessário fazer referencias explicitas à páginas, variáveis e outros conteúdos que não seriam de bom grado caíssem em mãos malvadas. Nunca é demais um proteçãozinha extra (não digo aqui que o 'truque' adiante seja o método mais seguro, mas também, não é dos mais tolos) quando o assunto é dados vulneráveis em nossos sistemas web.

Segue adiante uma dica de como podemos ocultar ('proteger') nosso js para que seu conteúdo não fique exposto à leitura de quantos queiram. E, para os amantes do código arreganhado, não trata-se de uma ação 'CodeEgoíca' (neologismo, nenhuma referencia no google até hoje hehehe), uma vez que não impede o desenvolvedor do código 'protegido' de participar, querendo, de comunidades voltadas ao compartilhamento de conhecimento, e lá, auxiliar ativamente a outros a desenvolverem seus próprios códigos.

Javascript é uma linguagem de programação do lado do cliente (isso vocês já sabem), ele roda (é executado) na máquina do cara que tá cessando sistema web, o site etc.. Assim sendo, não se pode, efetivamente, 'esconder' algo que esteja ai, na sua máquina.

Ocultar ou ofuscar seu o script (código) é uma boa solução, mas não é suficiente, porque, embora torne o processo mais complicado, algum mal intencionado sempre acaba decifrando o que quer decifrar, e aqui, não sejamos ingênuos, os ninjas entram nas máquinas do governo americano, de bancos referencia em segurança digital, imagina no teu scriptzinho 'protegido'.

Não desanime, mesmo com essas injeção de desanimo, existem algumas soluções para deixar seu código ofuscado, 'oculto', difícil de ser roubado (eita! aqui é osso). Mas lembrem-se, como eu disse, nada é 100% em se tratando de segurança digital.

Bem!, assim de cabeça, uma primeira ideia é restringir o acesso aos seus arquivos .js externos. Aqueles que você escreveu o código e esta chamando na index pela tag '<script type="text/javascript" src="exemplo.js"></script>'. Supomos que alguém tente acessar o 'exemplo.js' pelo navegador, e ao fazê-lo ele não deverá visualizar seu conteúdo, mas sim, uma mensagem de erro.

Se sua página é escrita em PHP, pode incluir o script através da função 'include' e deixar o php decidir se é seguro mostrar o código. Para este exemplo, você vai precisar que seus arquivos .js externos estejam escritos em php 'exemplo.php', e neles, conter o código abaixo antes do 'echo' com o código em js:

Vejamos:

<?php
//esse código vai dentro, e logo no início, do arquivo 'exemplo.php' (que é o arquivo que contém o código js, não vamos confundir tudo)

//pode alterar de acordo com a necessidade

$URL = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if ($URL != "meudominio.br/index.php")
die("/\*sry, tipo sem direito de acesso\*/");
?>


...

<script type="text/javascript">
//essa tag de chamada js vai dentro do arquivo index.php (arquivo que chama o js, que em nosso caso é o 'exemplo.php')

<?php include "exemplo.php"; ?>;

</script>

Desta forma, apenas o navegador poderá ver o conteúdo do arquivo js.

Outra ideia interessante é que no final do seu script js, você apague seu conteúdo excluindo o elemento dom, de modo que após o navegador ler o código, o código desapareça:

<script id="codigoJs" type="text/javascript">

//seu código js aqui

//apaga o elemento script com o código após a leitura do mesmo pelo browser
document.getElementById('codigoJs').innerHTML = "";

</script>

Estes são hack's simples que não podem, e eu já falei antes, proteger totalmente seu código js, mas com certeza, pode irritar alguém que está tentando 'ler' o seu código.

Espero ter ajudado.

Abraço a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por magegamer07
      Galera, estou a muito tempo pesquisando como remover isso do resultado final do meu site 
       
      <dl class="variation">Início: 17 de julho de 2020</dl>
      Eu apenas gostaria que ele me retornasse o seguinte valor
      Início: 17 de julho de 2020
       
      É uma função que estou tentando fazer no wordpress junto ao woocommce para que na hora de clicar em finalizar compra, ele me redirecione ao WhatsApp com os itens do meu carrinho,
      Tudo vai bem, com exceção desse bendito <dl class..
      tem como ocultar isso?
       
      Quando a mensagem chega no whats, ela vem da forma que mostrei a cima com o DL
       
      Estou fazendo isso dentro de /public_html/wp-content/plugins/woocommerce/templates/order/order-details.php
       
      Tenho pouco conhecimento em php, por favor me ajudem 
       
      GRATIDÃO!
       
       
    • Por Rodrigokyo
      Pessoal tenho uma duvida , tipo  tenho uma tabela que exibe 10 resultados de noticias,   como faço para nao exibir as duas ultimas noticias ?  eu nao quero exibir as duas ultimas noticias pois elas estao em destaque em uma outra pagina.  
    • Por willkey
      Olá!
      Estou com dificuldade em exibir/ocultar um conteúdo de uma Div que "está" dentro de outra Div.

      No exemplo em anexo, existe duas "chamadas principais": "GOLEIROS" e "EQUIPES".
      Ao clicar em "GOLEIROS" é exibida uma tabela simples referente a goleiros.
      Ao clicar em "EQUIPES" é exibida duas "chamadas secundárias": "ATLETICO" e "BARCELONA".
      Ao clicar em "ATLETICO" ou "BARCELONA" é exibido o conteúdo específico de cada uma, porém, o meu problema surge aí, se clico em "ATLETICO" as informações referente a essa opção não abrem abaixo dela, tanto "ATLETICO" e "BARCELONA" somem e dão lugar a informação e só voltam a ser exibidas se eu clicar na chamada principal "EQUIPES", gostaria de resolver isso fazendo que "ATLETICO" e "BARCELONA" continuem lado a lado quando abrir as informações de uma delas.

      No exemplo são duas equipes, mas o objetivo é colocar 12 equipes e quando clicar no nome/escudo aparecer todo o elenco igual mostra na pagina: http://www.cpshowdebola.com.br/multimidia

      Provavelmente é coisa simples, mas não estou conseguindo resolver se é no html ou no script, já procurei outras dicas e tutoriais, mas não obtive sucesso.

      OBS.: Não tem nada em CSS. Tentei inserir o anexo, mas deu erro.
      <!--MENU ESTATISTICA--><center> <table border="2" cellspacing="5" cellpadding="5"> <tbody> <tr> <td><aa style="cursor: pointer;" onclick="mostra('goleiros');">GOLEIROS</aa></td> <td><aa style="cursor: pointer;" onclick="mostra('equipes');">EQUIPES</aa></td> </tr> </tbody> </table> <p></p> <!--GOLEIROS--> <div id="goleiros" style="display: none;"> <table border="2" frame="hsides" rules="rows" cellpadding="3" align="center"> <tbody> <tr align="center"> <td colspan="6"><span style="font-family: 'trebuchet ms', geneva, sans-serif; font-size: 12pt;"><strong>GOLEIRO MENOS VAZADO</strong></span></td> </tr> <tr align="center"> <td><span style="font-family: 'trebuchet ms', geneva, sans-serif; font-size: 12pt;">EQUIPE</span></td> </tr> </tbody> </table> </div> <!--EQUIPES--> <div id="equipes" style="display: none;"> <table border="2" cellspacing="2" cellpadding="2"> <tbody> <tr> <td><aa style="cursor: pointer;" onclick="mostra('amadrid');">ATLETICO</aa></td> <td><aa style="cursor: pointer;" onclick="mostra('barcelona');">BARCELONA</aa></td> </tr> </tbody> </table> </div> <!--ATLETICO--> <div id="amadrid" style="display: none;"> <table border="2" cellspacing="5" cellpadding="5"> <tbody> <tr> <td style="text-align: center; width: 155px;">ATLETICO<br /> <span style="font-size: 8pt;"><strong><span style="font-family: verdana, geneva, sans-serif;"> <span style="font-size: 8pt;"><strong><span style="font-family: verdana, geneva, sans-serif;"><span style="font-family: 'trebuchet ms', geneva, sans-serif;">Jogador 1</span> </span></strong></span><br /> <span style="font-size: 8pt; font-family: 'trebuchet ms', geneva, sans-serif;"><strong>Comiss&atilde;o T&eacute;cnica</strong></span></td> </tr> </tbody> </table> </div> <!--BARCELONA--> <div id="barcelona" style="display: none;"> <table border="2" cellspacing="5" cellpadding="5"> <tbody> <tr> <td style="text-align: center; width: 155px;">BARCELONA<br /> <span style="font-size: 8pt;"><strong><span style="font-family: verdana, geneva, sans-serif;"> <span style="font-size: 8pt;"><strong><span style="font-family: verdana, geneva, sans-serif;"><span style="font-family: 'trebuchet ms', geneva, sans-serif;">Jogador 1</span> </span></strong></span><br /> <span style="font-size: 8pt; font-family: 'trebuchet ms', geneva, sans-serif;"><strong>Comiss&atilde;o T&eacute;cnica</strong></span></td> </tr> </tbody> </table> </div> <!--SCRIPT--> <script type="text/javascript">// <![CDATA[ function mostra(theId){ var theArray= new Array('goleiros','equipes','amadrid','barcelona'); w=document.getElementById(theId) if(w.style.display=="block"){w.style.display='none';}else{ for(i=0; i<theArray.length; i++){ if(theArray[i] == theId){ w.style.display='block'; }else{ document.getElementById(theArray[i]).style.display='none'; } } } } // ]]></script> </center>  
    • Por Lúcio Marques
      Olá, bom dia.
      Alguém pode me dar uma força neste para esta função.
      Tenho uma tabela que mostra 50 linhas de cadastro, com isso gostaria que mostrasse 25 linhas e logo abaixo haveria um botão "abrir mais" para mostrar os restantes de linhas.
      Vi isso em algum site, e achei bem bacana.
       
      Agradeço desde já.
    • Por TiagoSR
      Olá!

      Eu tenho um código bem básico em html que apenas abre (com "iframe") um conteúdo de uma página da Microsoft.
      No entanto, ao testar, eu percebi que toda vez que abria a página e o conteúdo do link externo, era exibido uma barra logo abaixo com opções de "compartilhar" e tudo mais (coisa da própria Microsoft). Eu queria impedir que essa barra fosse exibida, ou simplesmente ocultá-la logo após carregar a página. 
      Eu entrei no código deste objeto e exclui a "div" e ele sumiu.
      Tentei de várias maneiras executar javascripts que pudessem ocultar a div, mas acredito que o problema é que o script está sendo executado antes de carregar a div, pois ela é exibida no final do carregamento da página (que demora uns 5 segundos).

      É possível ocultar esta div gerada ao incorporar o link, mesmo não estando no meu código-fonte?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.