Proteja seu website ou página html com encriptaçâo

Nesse artigo vou mostrar como proteger seu website do ataque de script-kids, lammers, hackers (crackers) etc usando encriptação através de um javascript.

[ Hits: 37.709 ]

Por: M4iir1c10 em 17/04/2008 | Blog: https://github.com/mauricioph


O código



A partir de agora veja o código:

<html><head><title>Compile</title>
<script language="javascript">
<!--
//////////////////////////////////////////////////////////////////
// Source Code Encrypter v1.0 //
//////////////////////////////////////////////////////////////////
// //
// Este JavaScript pode ser usado livremente, desde que esta mensagem
// esteja aqui no cabeçalho do script. Quaisquer modificações
// e bugs encontrados (e consertados), são bem vindos.
// mauriciophnz@yahoo.co.nz
//
//////////////////////////////////////////////////////////////////


var i=0;
var ie=(document.all)?1:0;
var ns=(document.layers)?1:0;

function initStyleElements() /* Estilo para os botões */
{
var c = document.pad;
if (ie)
{
c.text.style.backgroundColor="#DDDDDD";
c.compileIt.style.backgroundColor="#C0C0A8";
c.compileIt.style.cursor="hand";
c.select.style.backgroundColor="#C0C0A8";
c.select.style.cursor="hand";
c.view.style.backgroundColor="#C0C0A8";
c.view.style.cursor="hand";
c.retur.style.backgroundColor="#C0C0A8";
c.retur.style.cursor="hand";
c.clear.style.backgroundColor="#C0C0A8";
c.clear.style.cursor="hand";
}
else return;
}

/* Luminosidade dos botões no painel de compilacao */
function LightOn(what)
{
if (ie) what.style.backgroundColor = '#E0E0D0';
else return;
}
function FocusOn(what)
{
if (ie) what.style.backgroundColor = '#EBEBEB';
else return;
}
function LightOut(what)
{
if (ie) what.style.backgroundColor = '#C0C0A8';
else return;
}
function FocusOff(what)
{
if (ie) what.style.backgroundColor = '#DDDDDD';
else return;
}
/* Luminosidade dos botões */

function generate() /* Gerador da "Compilação" */
{
code = document.pad.text.value;
if (code)
{
document.pad.text.value='Compilando...Espere por favor!';
setTimeout("compile()",1000);
}
else alert('Antes de apertar o botão escreva alguma coisa para ser compilada')
}
function compile() /* The "Compilation" */
{
document.pad.text.value='';
compilation=escape(code);
document.pad.text.value="<script> <!-- document.write(unescape(""+compilation+"")); //--> </script>";
i++;
if (i=1) alert("Página codificada 1 vez!");
else alert("Página codificada "+i+" vezes!");
}
function selectCode() /* Selecionando o código para copiar */
{
if(document.pad.text.value.length>0)
{
document.pad.text.focus();
document.pad.text.select();
}
else alert('Não há nada para ser selecionado!')
}
function preview() /* Visualizar a codificação */
{
if(document.pad.text.value.length>0)
{
pr=window.open("","Preview", "scrollbars=1,menubar=1,status=1,width=700,height=320,left=50,top=110");
pr.document.write(document.pad.text.value);
}
else alert('Nada para visualizar!')
}
function uncompile() /* Decodificando o "Código" */
{
if (document.pad.text.value.length>0)
{
source=unescape(document.pad.text.value);
document.pad.text.value=""+source+"";
}
else alert('Você precisa de um código codificado para poder decodificar!')
}
// -->
</script>
</head><body>
<!-- Compilation Panel -->
            </p>
            <form method=post name=pad align=center>
              <textarea rows=11 name=text cols=58 style="background-color:#BEBEBE;width:95%"></textarea>
              <br>
              <br>
              <input type=button value=Codificar name=compileIt onClick=generate() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
              <input type=button value=Selecionar name=select onClick=selectCode() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>

              <input type=button value=Vizualizar name=view onClick=preview() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
              <input type=button value=Decodificar name=retur onClick=uncompile() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
              <input type=reset value=Limpar name=clear onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
            </form>
            <!-- Compilation Panel -->
</body>
</html>

Agora copie esse código em um documento de texto e salve como "alguma-coisa.html". Ao abrir lá vai estar o seu formulário para você começar a usar.

Copie o código da página, jogue nessa área de texto e brinque com os botões.

Qualquer dúvida, mande, e na medida do possível estarei esclarecendo.

Página anterior    

Páginas do artigo
   1. Introdução
   2. O que esse script faz?
   3. O código
Outros artigos deste autor

Codificação e decodificação entre ASCII, hexadecimal e unicode

Raios de luz explodindo atrás do texto

Áudio Profissional no GNU/Linux

Aprendendo a melhorar os seus scripts

Rode Linux no seu iPod

Leitura recomendada

IBM apresenta Maqetta, uma contribuição open source para HTML5

RSS - O antes e o depois já nas bancas!

Instalando o Java Plug-in no Mozilla

Google AdSense: Técnicas de otimização dos anúncios

Codificação e decodificação entre ASCII, hexadecimal e unicode

  
Comentários
[1] Comentário enviado por stremer em 17/04/2008 - 15:31h

cara. para quem não conhece nada até pode servir para alguma coisa, mas isto esta longe de ser criptografia, é mais mudar a forma de codificação dos caracteres ou qualquer coisa parecida. Criptografia seria se você realmente criptografasse o código de alguma maneira e montasse ele de maneira dinâmica pelo javascript, baseado em uma chave obtida naquele momento por ajax por ex. ai sim seria algo mais inteligente que ja dificultaria o trabalho de quem quisesse ver o código.
Mesmo assim qualquer coisa que roda no lado do cliente é somente apresentação e não tem impacto nenhum na parte do servidor (como php que foi citado). Existem algumas ferramentas para criptografar sim arquivos php, para evitar que vejam o código fonte caso o programa tenha alguma brecha que permita download de tais arquivos ou qualquer acesso ao servidor que ai é mais inteligente.
Importante lembrar que ambos os casos não evitam nenhum tipo de injection, pois isto é problema do programa codificado em si e não tem nada a ver com criptografia.

Critica construtiva ok.

[2] Comentário enviado por super-root em 17/04/2008 - 16:58h

As Funções escape() e unescape() são funções do java script. Estão longe de ser uma criptografia. Muito facio de quebrar. Isso eu fazia quando era iniciante na net, pegava as página supostamente criptografadas fazia o processo inverso, que é muito simples, usando o unescape. Valeu pela iniciativa mas não achei um arquivo bom.

[3] Comentário enviado por elgio em 17/04/2008 - 19:03h

Faço coro ao que disse o stremer.

Isto não é encriptação, é obscuridade.
Encriptação mesmo, de verdade, só se tu usasse algum algoritmo simétrico como até mesmo o antigo DES no lado do servidor.

[4] Comentário enviado por y2h4ck em 17/04/2008 - 19:24h

Bom ... só pra complementar os nossos amigos ai ... existe até um site na internet com challenges de "hacking" em que vários dos exercícios são justamente fazer bypass neste tipo de proteção ai. =]

[]s

[5] Comentário enviado por M4iir1c10 em 18/04/2008 - 01:18h

Baseado noque vocês estão me falando, então permitam mudar a apresentação desse artigo:

"Nesse artigo vou mostrar como proteger seu website do ataque de script-kids e lammers usando codificação Hexadecimal através de um javascript."

Não é sempre que se acerta nas palavras né?

Eu sei que isso esta longe de um PGP mais pelo menos algumas pessoas nao entendem bulufas do que estará escrito.

Obrigado pelas criticas construtivas afinal e assim que se aprende mais...

[6] Comentário enviado por stremer em 18/04/2008 - 09:13h

ok cara.
E quanto a sites com challenges "hacking". Só pra citar o http://www.mod-x.co.uk/, é bem legal, pena que é bem "windows" o negócio, tem até uma fase que vc tem de quebrar a senha de um programa, usar debugger e tudo mais (como se tivesse fazendo um crack). Tem parte de descompilar classe java, etc. Sniffer. É bem legal.

Agora tbem o título ficará mais correto, porém para lammers e script-kids mtas vezes não precisa nem codificar, as vezes só colocar um javascript que bloqueia os botões do mouse ja resolve (kkkkk).
Mas como falei, pra quem não conhece quase nada, sempre informação nova ta valendo!

[7] Comentário enviado por elgio em 18/04/2008 - 10:18h

Exato!
Minhas criticas não foram quanto ao artigo, mas sim a força da expressão "criptografia".

[]'s

[8] Comentário enviado por NewtonJr. em 16/05/2008 - 11:31h

Mauricio, seu código não rodou. Peço que me envie uma nova versão do mesmo para teste. No aguardo. newton.teixeira@yahoo.com.br

[9] Comentário enviado por M4iir1c10 em 22/08/2008 - 00:52h

A todos os que fizeram o teste e o codigo nao rodou:

quando o codigo foi passado para o site houve um problema que eu espero seja concertado agora:

Na linha 76 do codigo na funcao compile() o site nao colocou os caracteres das barras invertidas \ entao aqui vai o codigo que voce deve mudar para fazer funcionar:

document.pad.text.value="<script>\n<!--\ndocument.write(unescape(\""+compilation+"\"));\n//-->\n<\/script>";


[10] Comentário enviado por M4iir1c10 em 22/08/2008 - 00:52h

E aqui o codigo completo:
<html><head><title>Compile</title>
<script language="javascript">
<!--
//////////////////////////////////////////////////////////////////
// Source Code Encrypter v1.0 //
//////////////////////////////////////////////////////////////////
// //
// Este JavaScript pode ser usado livremente, desde que esta mensagem
// esteja aqui no cabeçalho do script. Quaisquer modificações
// e bugs encontrados (e consertados), são bem vindos.
// mauriciophnz@yahoo.co.nz
//
//////////////////////////////////////////////////////////////////

var i=0;
var ie=(document.all)?1:0;
var ns=(document.layers)?1:0;

function initStyleElements() /* Estilo para os botões */
{
var c = document.pad;
if (ie)
{
c.text.style.backgroundColor="#DDDDDD";
c.compileIt.style.backgroundColor="#C0C0A8";
c.compileIt.style.cursor="hand";
c.select.style.backgroundColor="#C0C0A8";
c.select.style.cursor="hand";
c.view.style.backgroundColor="#C0C0A8";
c.view.style.cursor="hand";
c.retur.style.backgroundColor="#C0C0A8";
c.retur.style.cursor="hand";
c.clear.style.backgroundColor="#C0C0A8";
c.clear.style.cursor="hand";
}
else return;
}

/* Luminosidade dos botões no painel de compilacao */
function LightOn(what)
{
if (ie) what.style.backgroundColor = '#E0E0D0';
else return;
}
function FocusOn(what)
{
if (ie) what.style.backgroundColor = '#EBEBEB';
else return;
}
function LightOut(what)
{
if (ie) what.style.backgroundColor = '#C0C0A8';
else return;
}
function FocusOff(what)
{
if (ie) what.style.backgroundColor = '#DDDDDD';
else return;
}
/* Luminosidade dos botões */

function generate() /* Gerador da "Compilação" */
{
code = document.pad.text.value;
if (code)
{
document.pad.text.value='Compilando...Espere por favor!';
setTimeout("compile()",1000);
}
else alert('Antes de apertar o botão escreva alguma coisa para ser compilada')
}
function compile() /* The "Compilation" */
{
document.pad.text.value='';
compilation=escape(code);
document.pad.text.value="<script>\n<!--\ndocument.write(unescape(\""+compilation+"\"));\n//-->\n<\/script>";
i++;
if (i=1) alert("Página codificada 1 vez!");
else alert("Página codificada "+i+" vezes!");
}
function selectCode() /* Selecionando o código para copiar */
{
if(document.pad.text.value.length>0)
{
document.pad.text.focus();
document.pad.text.select();
}
else alert('Não há nada para ser selecionado!')
}
function preview() /* Visualizar a codificação */
{
if(document.pad.text.value.length>0)
{
pr=window.open("","Preview", "scrollbars=1,menubar=1,status=1,width=700,height=320,left=50,top=110");
pr.document.write(document.pad.text.value);
}
else alert('Nada para visualizar!')
}
function uncompile() /* Decodificando o "Código" */
{
if (document.pad.text.value.length>0)
{
source=unescape(document.pad.text.value);
document.pad.text.value=""+source+"";
}
else alert('Você precisa de um código codificado para poder decodificar!')
}
// -->
</script>
</head><body>
<!-- Compilation Panel -->
</p>
<form method=post name=pad align=center>
<textarea rows=11 name=text cols=58 style="background-color:#BEBEBE;width:95%"></textarea>
<br>
<br>
<input type=button value=Codificar name=compileIt onClick=generate() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
<input type=button value=Selecionar name=select onClick=selectCode() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>

<input type=button value=Vizualizar name=view onClick=preview() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
<input type=button value=Decodificar name=retur onClick=uncompile() onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
<input type=reset value=Limpar name=clear onMouseOver=LightOn(this) onMouseOut=LightOut(this)>
</form>
<!-- Compilation Panel -->
</body>
</html>

[11] Comentário enviado por comfaa em 28/10/2008 - 11:58h

muito bom !!


[12] Comentário enviado por pais em 06/03/2011 - 18:21h

Oi M4iir1c10.
Sou iniciante programação isto é se criar site for programar.
Gostei muito destas dica e orientação porem eu não conseguir inserir imagens.

Os passo em que seguir foram esses;
Criei um diretório chamado <teste em html> dentro dela add duas imagens.
Primeiro tentei.
<img urc="nome da imagem.jpg"> e
<img urc="/teste em html/nome da imagem.jpg">
Obs todas as imagens a instenção é jpeg

[13] Comentário enviado por viniciusdias em 26/12/2013 - 15:16h


[12] Comentário enviado por pais em 06/03/2011 - 18:21h:

Oi M4iir1c10.
Sou iniciante programação isto é se criar site for programar.
Gostei muito destas dica e orientação porem eu não conseguir inserir imagens.

Os passo em que seguir foram esses;
Criei um diretório chamado <teste em html> dentro dela add duas imagens.
Primeiro tentei.
<img urc="nome da imagem.jpg"> e
<img urc="/teste em html/nome da imagem.jpg">
Obs todas as imagens a instenção é jpeg



Amigo, o código para inserir imagens em html é:
<img src="imagem.jpg" alt="Texto Alternativo" />

Você usou "urc". Altere por "src".
;)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts