Esse área é só para dicas de segurança de códigos fonte, pastas, etc...
Moderador: web
por radiomeadd Offline » Seg Out 13, 2008 7:14 pm
|
Olá pessoal do Codigos na Web.
Vamos fazer um esperimento? que tal agente fazer um protetor de js?
Vamos la.
Ex tenho um arquivo chamado swfobject.js
- Código: Selecionar todos
if(typeof deconcept=="undefined"){var deconcept=new Object(); }...
Agora vamos Protege ele para ninguem sabe nossa font. Vamos criar o swfobject.js.php
- Código: Selecionar todos
<? session_start(); // inicia a rotina de sessoes header("Content-Type: text/javascript",true); // define que este arquivo vai ter comandos de text/javascript if($_SESSION['vareavel_da_session'] != 'codico_da_session') // se a sessao com o nome da chave nao tiver o valor certo { echo "document.write('Este script não esta autorizado para abertura');"; // escreve que o arquivo nao esta autorizado exit; // interrompe a execução do arquivo } $_SESSION['vareavel_da_session'] = ''; // sempre que o arquivo passa pela execução, limpa a sessao de chave após a verificação unset($_SESSION['vareavel_da_session']); // após definir valor nulo para a sessao de chave, finaliza ela destrindo
// após a verificação em php, procede com a execução do javascript ?> if(typeof deconcept=="undefined"){var deconcept=new Object();...
Pronto ja esta feito nossa proteção no arquivo js.
Vamos criar um index para testa ele? Entao vamos la...
- Código: Selecionar todos
<? session_start(); // inicia a rotina de sessoes antes de começar o html ?> <? $_SESSION['vareavel_da_session'] = 'codico_da_session'; // define a chave com o valor autorizado // em seguida abre o arquivo em js ?> <head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>:: Rádio Flogão - Seu portal de Músicas, Eventos, Filmes, Jogos on-line, Dicas de Filmes, Baladas, C</title>
<style type="text/css"> body { background-color: #333333; margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; font-family: tahoma,verdana,arial; font-size: 11; color: #000000; }
body,td,th { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; font-family: tahoma,verdana,arial; font-size: 11; color: #000000; }
.branco {color: #FFFFFF}
.pequeno { font-size: 8px; color: #999999; }
.titulos { font-size: 13; color: #66CC33; }
a:link, a:active, a:visited { color: #000000; text-decoration: none; }
a:hover { color: #66CC33; text-decoration: underline; }
.input { height: 14; border: 1px solid #333333; font-family: tahoma,verdana,arial; font-size: 11; color: #000000; } </style> </HEAD>
<body> <script type="text/javascript" src="swfobject.js.php"></script> <table width="350" border="0" cellspacing="0" cellpadding="0"> <tr> <td>
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="368"><div class="postcontent"> <p id="player1" style="display:none"><a href="http://www.macromedia.com/go/getflashplayer">Get the latest Flash Player</a> to see this player.</p> <noscript><p>[Javascript required to view Flash movie, please turn it on and refresh this page]</p></noscript>
<script type="text/javascript"> document.getElementById("player1").style.display = ""; var s1 = new SWFObject("flvplayer.swf","player1","425","344","7"); s1.addParam("wmode","transparent"); s1.addParam("allowscriptaccess","always"); s1.addParam("allowfullscreen","true"); s1.addVariable("height","344"); s1.addVariable("width","425"); s1.addVariable("file","http://www.youtube.com/watch?v=g_724uhehps"); s1.addVariable("backcolor","0xDF0E21"); s1.addVariable("frontcolor","0xffffff"); s1.addVariable("lightcolor","0xffffff"); s1.addVariable("logo","http://www.radioflogao.com.br/logo1.png"); s1.addVariable("link","http://www.youtube.com/watch?v=g_724uhehps"); s1.addVariable("showstop","true"); s1.addVariable("autostart","true"); s1.write("player1"); </script> </div></td> </tr> </table></td> </tr> </table>
pronto ja esta protegito o arquivo js usando o php...
Em breve vou esta colocando aqui uma Galeria de videos do youtube com o player diferente do deles.
qualquer coisa veja no site www.radioflogao.com.br clikando em Galerias de Videos. 
... é o script a ser protegido.

Web site: www.webradiogratis.com
Cadastro: http://auth.webradiogratis.com/index.php
Comunidade Codigos na Web http://www.orkut.com.br/Main#Community?cmm=94905489
Acessem a comunidade do codigos na web no orkut...
radiomeadd
MEMBRO
Mensagens: 49
Registrado em: Qui Ago 28, 2008 10:56 am
Localização: goias / goiania / brasil
|
por web Offline » Seg Out 13, 2008 7:31 pm
Rodei aqui, funciona, só o flash que não carregou.
Ai dei uma simplificada no código só para eu enteder, criei 2 arquivos:
teste.php que é o js a ser protegido
- Código: Selecionar todos
<?php session_start(); // inicia a rotina de sessoes header("Content-Type: text/javascript",true); // define que este arquivo vai ter comandos de text/javascript if($_SESSION['vareavel_da_session'] != 'codico_da_session') // se a sessao com o nome da chave nao tiver o valor certo { echo "document.write('Este script não esta autorizado para abertura');"; // escreve que o arquivo nao esta autorizado exit; // interrompe a execução do arquivo } $_SESSION['vareavel_da_session'] = ''; // sempre que o arquivo passa pela execução, limpa a sessao de chave após a verificação unset($_SESSION['vareavel_da_session']); // após definir valor nulo para a sessao de chave, finaliza ela destrindo
// após a verificação em php, procede com a execução do javascript ?> document.write('abc');
teste2.php que é o arquivo que eu carrego
- Código: Selecionar todos
<?php session_start(); // inicia a rotina de sessoes antes de começar o html
$_SESSION['vareavel_da_session'] = 'codico_da_session'; // define a chave com o valor autorizado // em seguida abre o arquivo em js ?> <script type="text/javascript" src="teste.php"></script>
Quando alguém vai copiar, claro vai no código fonte ver o script, ai vê o caminho para teste.php, e vai tentar carregar o teste.php pelo navegador, o que vai retornar o erro, impedindo a cópia.
Muito bom o script, vai ajudar muita gente

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.
Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com
web
ADMIN
Mensagens: 12425
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil
|
por jamilservicos Offline » Qui Abr 16, 2009 11:47 am
muito bom mesmo! isso combinado com outras tecnicas como paginas via include, bloqueio de codigo fonte e ajax torna bem dificil a copia do codigo! mas notei algo estranho aqui:
echo "document.write('Este script não esta autorizado para abertura');";
como é um echo ele imprimi toda a linha "document.write('Este script não esta autorizado para abertura');"
então o certo seria apenas...
echo "Este script não esta autorizado para abertura";
????????????????

jamilservicos
MEMBRO
Mensagens: 11
Registrado em: Dom Jan 20, 2008 5:45 pm
Localização: para/belem/brasil
|
por web Offline » Qui Abr 16, 2009 11:58 am
É na forma js mesmo, porque quem vai carregar a parte protegida é o js, no exemplo que postei, o teste2.php

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.
Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com
web
ADMIN
Mensagens: 12425
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil
|
por jamilservicos Offline » Qui Abr 16, 2009 1:32 pm
outra coisa... tem como evitar esse aviso de permissão no ie?
"deseja permitir que esta pagina web acesse sua area de transferencia?"
ops! pergunta errada! HAEUhuea
a pergunta é como evitar que no internet ele apareça como download do documento! porq não aparece como o firefox que amostra a mensagem de erro?

jamilservicos
MEMBRO
Mensagens: 11
Registrado em: Dom Jan 20, 2008 5:45 pm
Localização: para/belem/brasil
|
por jamilservicos Offline » Qui Abr 16, 2009 3:10 pm
deixa jah resolvi!
o problema era o:
header("Content-Type: text/javascript",true);
ele tem q ficar antes do "?>"
se ficar antes da liberação do:
if($_SESSION['vareavel_da_session'] != 'codico_da_session') // se a sessao com o nome da chave nao tiver o valor certo { echo "document.write('Este script não esta autorizado para abertura');"; // escreve que o arquivo nao esta autorizado exit; // interrompe a execução do arquivo } $_SESSION['vareavel_da_session'] = ''; // sempre que o arquivo passa pela execução, limpa a sessao de chave após a verificação unset($_SESSION['vareavel_da_session']); // após definir valor nulo para a sessao de chave, finaliza ela destrindo
o ie tenta fazer o download do arquivo.. jah colocando depois depois inves da mensagem por um: header("location:/");
e a pessoa sera enviada devolta ao site principal automaticamente!

jamilservicos
MEMBRO
Mensagens: 11
Registrado em: Dom Jan 20, 2008 5:45 pm
Localização: para/belem/brasil
|
por web Offline » Qui Abr 16, 2009 8:01 pm
Boa

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.
Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com
web
ADMIN
Mensagens: 12425
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil
|
por brunomiova Offline » Dom Mai 03, 2009 2:02 pm
Muito boa esta dica! Mas tem como usar cookies? Porque acho que da conflito com outra seção (se houver).. :]

brunomiova
MEMBRO
Mensagens: 39
Registrado em: Qua Ago 20, 2008 12:50 pm
Localização: Alagoas/Arapiraca/Brasil
|
por web Offline » Dom Mai 03, 2009 4:09 pm
Vamos a versão com cookies.
Crie um arquivo chamado teste.php, que conterá a proteção e seu código js
- Código: Selecionar todos
<?php header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT"); Header("Cache-control: private, no-cache"); Header("Expires: Mon, 26 Jun 1997 05:00:00 GMT"); Header("Pragma: no-cache"); header("Cache: no-cache");
$tempo_cookie = "3600"; setcookie("nome_do_cookie", "erro!", time()+($tempo_cookie));
if($_COOKIE["nome_do_cookie"]!="valor_do_cookie") { echo "document.write('Este script não esta autorizado para abertura');"; exit; } header("Content-Type: text/javascript",true); ?> document.write('abc');
Agora o arquivo que vai simular a chamada do teste.php, esse arquivo que faz a chamada chama-se teste2.php
- Código: Selecionar todos
<?php $tempo_cookie = "3600"; setcookie("nome_do_cookie", "valor_do_cookie", time()+($tempo_cookie)); ?>
<html> <head> <meta http-equiv="expires" content="0"> <script type="text/javascript" src="teste.php"></script> </head>
<body>...</body> </html>
Para sucesso do script no IE e FF, siga o modelo acima.

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.
Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com
web
ADMIN
Mensagens: 12425
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil
|
por brunomiova Offline » Seg Mai 04, 2009 9:39 am
Poxa não sei o q há. Pq quando olho o script ele sempre mostra. Acho que é pq o cookie sempre existe..

brunomiova
MEMBRO
Mensagens: 39
Registrado em: Qua Ago 20, 2008 12:50 pm
Localização: Alagoas/Arapiraca/Brasil
|
por web Offline » Seg Mai 04, 2009 2:33 pm
Meu navegador está configurado como default, IE e FF, e quando acesso teste.php, que é onde está o script mostra a mensagem que não pode ser exibido.

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.
Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com
web
ADMIN
Mensagens: 12425
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil
|
por jamilservicos Offline » Sáb Jun 20, 2009 6:57 pm
lembrando que essa proteção só funciona para acesso direto ao arquivo de javascript, mas ele pode ser visto por completo após o site for carregado!

jamilservicos
MEMBRO
Mensagens: 11
Registrado em: Dom Jan 20, 2008 5:45 pm
Localização: para/belem/brasil
|
por web Offline » Sáb Jun 20, 2009 7:12 pm
Como assim?

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.
Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com
web
ADMIN
Mensagens: 12425
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil
|
por lailton Offline » Ter Jun 15, 2010 8:46 pm
Legal 1 pergunta
e se o user acessa a pagina, apos a mesma ser carregada ele for ao chace do windows todos navegadors armazenam os arquivos la, e editar vera o javascript normal.
ou estou errado ? alguma solucao para isso ?
vlw.

lailton
NOVO MEMBRO
Mensagens: 1
Registrado em: Ter Jun 15, 2010 8:42 pm
|
por web Offline » Ter Jun 15, 2010 9:40 pm
Falando pela alteração no script, usando SESSION, o usuário não consegue ver de modo algum o conteúdo do arquivo.

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.
Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb1 [@] gmail [.] com
web
ADMIN
Mensagens: 12425
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil
|
Voltar para Dicas de segurança
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante
|
|
|