Como proteger arquivos de javascript e css

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 dinamica.
(Neste tutorial vamos utilizar o exemplo com javascript, pois as proteções sao mais procuradas para este tipo de arquivo)

 

# O primeiro passo é ter um arquivo javascript.

Geralmente os arquivos javascript sao salvos em arquivos com extenções "js" (Ex: arquivo.js) assim quando o desenvolvedor nescessita do uso daquele script ele usa um comando que abre o mesmo.
Exemplo:
==================================
     <script type="text/javascript" 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 sessoes
     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 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['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 sessao 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 usa-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 consequencia executar o script ja 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 sessoes 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 type="text/javascript" src="script.js.php"></script>
    </head>
    <body>
    <p>Este a página que abre o script, acima deve aparecer o conteudo retornado pelo.</p>
    </body>
    </html>
==================================
* No exemplo acima:
-> Definimos o inicio da rotina de sessoes 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 conteudo 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 conteudo 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']

 

Obs: este metodo de proteção nao atinge 100% da segurança dos arquivos.

  • 6 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

Correção de vulnerabilidade no sistema de Galerias

Para corrigir o problema com Injection no sistema de galerias, apenas edite o arquivo...

Register Globals on/off para aplicativas em php via .htaccess

Para ligar ou desligar globals via arquivo .htaccess, apenas edite o aquivo dentro do...