Evitar que os usuários abram arquivos via URL no servidor web lighttpd

1

Eu tenho um site que usa arquivos JSON para armazenar configurações. Esses arquivos estão localizados em uma subpasta, para que pareça /settings/settings.json .

Se eu digitar o endereço IP na rede local, como http://192.168.1.1/settings/settings.json , poderei ver o conteúdo do JSON. Eu preciso evitar isso de alguma forma, e eu acho que eu poderia fazer isso através de um arquivo .htaccess, mas não tenho certeza. O nome de domínio ( 192.168.1.1 ) é dinâmico e pode mudar de tempos em tempos, por isso preciso encontrar uma maneira dinâmica de evitá-lo.

    
por Daniel Jørgensen 23.04.2016 / 18:55

1 resposta

0

Eu posso ver o conteúdo do json. Eu preciso evitar isso de alguma forma

Se você está usando o Apache, então você pode usar:

  • Um arquivo .htacess

  • Um bloco Directory em httpd.conf (melhor desempenho)

Se você estiver usando Lighttpd , poderá usar:

  • Uma diretiva url.access-deny em lighttpd.conf

Veja abaixo as instruções.

Apache - Usando um arquivo .htacess

Crie um arquivo .htaccess no diretório settings com o seguinte conteúdo:

deny from all

Isso negará o acesso a qualquer arquivo dessa pasta.

Nota:

You should avoid using .htaccess files completely if you have access to httpd main server config file. Using .htaccess files slows down your Apache http server. Any directive that you can include in a .htaccess file is better set in a Directory block, as it will have the same effect with better performance.

Fonte Tutorial do Apache HTTP Server: arquivos .htaccess

Apache - Usando um bloco Directory em httpd.conf

Adicione o seguinte ao seu arquivo httpd.conf

<Directory "/settings">
  Require all denied
</Directory>

Lighttpd - Usando uma diretiva url.access-deny em lighttpd.conf

The mod_access module is used to deny access to files and directories.

  1. Edit /etc/lighttpd/lighttpd.conf file as follows:

    vi lighttpd.conf
    
  2. Add the following code to enable mod_access:

    server.modules += ( "mod_access" )
    
  3. Add regex as follows:

    # deny access to /settings
    $HTTP["url"] =~ "^/settings/" {
         url.access-deny = ("")
    }
    
  4. Save and close the file.

  5. Check for syntax errors:

    lighttpd -t -f /etc/lighttpd/lighttpd.conf
    
  6. If no errors then restart the lighttpd web server:

    service lighttpd restart
    

Fonte Lighttpd Negar acesso a pastas / diretórios . O script foi ajustado para atender aos requisitos da pergunta.

Leitura Adicional

por 23.04.2016 / 19:15