Se protegendo de ataques Defacement com javascript!

Sem Comentários

Aqui abaixo tenho um método de proteção de javascript:

Ultimamente muitos desenvolvedores tem criado aplicações para web utilizando javascript, css, ajax, xml, e ai por diante. Neste artigo estarei explicando uma forma bem funcional de como proteger os arquivos usando PHP como linguagem dinâmica.

(Neste tutorial vamos utilizar o exemplo com javascript, pois as proteções são mais procuradas para este tipo de arquivo)

# O primeiro passo é ter um arquivo javascript.

Geralmente os arquivos javascript são salvos em arquivos com extensões “js” (Ex: arquivo.js) assim quando o desenvolvedor necessita do uso daquele script ele usa um comando que abre o mesmo.

Exemplo:

==================================

     <script src=”arquivo.js”></script>

==================================

Mas como nossa proteção irá usar a linguagem PHP para fazer a proteção do arquivo, o nome que tinha a extenção “.js” agora terá “.js.php” para o servidor interpretar os comandos em PHP.

Agora vamos usar um exemplo de arquivo javascript bem básico, onde ele irá somente escrever algum texto na tela.

(Este exemplo ja inclui a parte que protege a abertura do arquivo)

Nome do arquivo: script.js.php

==================================

     <?

     session_start(); // inicia a rotina de sessões

     header(“Content-Type: text/javascript”,true); // define que este arquivo vai ter comandos de text/javascript

     if($_SESSION[‘Chave_Arquivo_script’] != ‘Valor_Da_Chave’) // se a sessão com o nome da chave não tiver o valor certo

     {

     echo “document.write(‘Este script não esta autorizado para abertura’);”; // escreve que o arquivo não esta autorizado

     exit; // interrompe a execução do arquivo

     }

     $_SESSION[‘Chave_Arquivo_script’] = ”; // sempre que o arquivo passa pela execução, limpa a sessao de chave após a verificação

     unset($_SESSION[‘Chave_Arquivo_script’]); // após definir valor nulo para a sessão de chave, finaliza ela destrindo

     // após a verificação em php, procede com a execução do javascript

     ?>

     document.write(‘Olá mundo, meu script esta protegido.’);

==================================

* No exemplo acima:

-> Usamos uma $_SESSION (sessão do servidor) para definir uma chave que deverá ter um determinado valor para o script continuar a execução, caso o valor da chave não esteja definido corretamente, escreve a mensagem (em javascript) que o arquivo não tem permições para ser aberto e em seguida interrompe a execução do mesmo.

-> Sempre que o arquivo for executado, o primeiro passo Será verificar se ele é valido, e em seguida limpar a $_SESSION que possui o valor da chave, assim a chave definida como valida será aceita somente uma vez.

Se voce copiar o código do exemplo acima, colar em um arquivo, salvar com o nome citado antes do exemplo, e executar ele, verá que não aparecerá a mensagem “Olá mundo…” e sim a mensagem dizendo que o arquivo não está autorizado para abertura.

# O segundo passo é ter um arquivo que chame o javascript definindo a chave autenticada.

Agora que temos um arquivo protegido, vamos ter que usá-lo em nossas paginas, para isto teremos que (antes da execução do script) definir o valor autorizado para a chave, para que o script identifique que sua página tem o valor certo para a autenticação e por conseqüência executar o script já limpando o valor da chave para não ter possibilidade de aberturas se a redefinição da chave.

Agora vamos usar o exemplo da página que vai autorizar e abrir o script.

(Neste exemplo vamos usar a página chamada index.php considerando que o nosso script devera ser aberto na página principal do site)

Nome do arquivo: index.php

==================================

     <?

     session_start(); // inicia a rotina de sessões antes de começar o html

     ?>

    <html>

    <head>

    <meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>

    <title>Meu site em PHP com js</title>

    <?

     $_SESSION[‘Chave_Arquivo_script’] = ‘Valor_Da_Chave’; // define a chave com o valor autorizado

     // em seguida abre o arquivo em js

     ?>

    <script src=”script.js.php”></script>

    </head>

    <body>

    <p>Este a página que abre o script, acima deve aparecer o conteúdo retornado pelo.</p>

    </body>

    </html>

==================================

* No exemplo acima:

-> Definimos o inicio da rotina de sessões antes das tags de html.

-> Definimos a $_SESSION com o nome da chave que possui o valor autenticado para o script fazer a verificação, aceitar, exibir o script, e limpar a chave para uma nova verificação futura.

-> E a página se procede exibindo todo o conteúdo html e javascript (do arquivo script.js.php) carregados com autorização.

Para ver que realmente funciona, tente abrir o script (script.js.php) no browser, e veja se o conteúdo que aparece é autenticado ou invalido, (o arquivo nao deve conter as informações protegidas quando for executado pelo browser)

Para ver que realmente funciona, experimente tirar a linha (na pagina index.php) que define a $_SESSION com o valor autenticado, você verá que o conteúdo que irá aparecer, é o inválido.

Pronto, temos arquivos protegidos, e podemos usar em nossas paginas quando quisermos.

Mas ATENÇÃO:

* Sugiro que use outros nomes para as chaves e os valores usados na autenticação, recomendado usar nomes e valores diferenciados e que dificultam a descoberta.

* Caso for usar a autenticação para mais de um arquivo, use nomes de chaves com prefixos diferentes. Exemplo: $_SESSION[‘ChaveArquivo_UM’] e $_SESSION[‘ChaveArquivo_DOIS’]

Arquivos

 

Leave a Comment

Digite o código. (obrigatório)

Vamos ler mais?

Ver mais artigos