Skip to content

24. Exercício prático – versão 13

A versão 13 traz poucas alterações: ela protege o acesso aos arquivos da aplicação.

Com a versão 12, é possível solicitar a página URL a partir da página [http://localhost/php7/scripts-web/impots/version-12/config.json]. Obtém-se então a seguinte página (Firefox):

Image

No entanto, esse arquivo [config.json] contém informações confidenciais, como os identificadores dos usuários autorizados a utilizar o aplicativo. Ele não deve estar acessível aos usuários. O mesmo se aplica a todos os arquivos do aplicativo, com exceção dos arquivos [main.php, index.php, Views/logo.jpg], que devem estar acessíveis externamente. De fato, as visualizações precisam ter acesso ao logotipo do aplicativo (HTTP). A versão 13 oferece uma solução simples para esse problema.

No NetBeans, copiamos e colamos a pasta [version-12] na pasta [version-13]:

Image

  • na pasta [1], na raiz do aplicativo, deixamos apenas os scripts [index.php, main.php];
  • em [2], os arquivos de configuração são colocados em uma pasta [Config];
  • em [3], a imagem [logo.jpg] é colocada na pasta [Resources];

O servidor HTTP utilizado aqui é um servidor Apache. Ele permite controlar o acesso a uma pasta por meio de um arquivo [.htaccess]. Em todas as pastas às quais queremos impedir o acesso direto por meio do URL, criamos o seguinte arquivo [.htaccess]:

Image

Essas duas linhas fazem com que todo acesso à pasta seja proibido para todos.

Colocamos esse arquivo em todas as pastas do aplicativo, exceto na pasta raiz e na pasta [Resources]. Por fim, apenas três arquivos ficam acessíveis externamente: [index.php, main.php, Resources/logo.jpg].

Vamos fazer alguns testes:

Image

Image

Image

Image

Image

É preciso fazer algumas alterações no código:

No arquivo [Config/config.json]:

Image

No arquivo [main.php]:

Image

No arquivo [Views/v-bandeau.php]:

Image