Requer que tudo negado não tenha efeito. Exigir tudo permitido, funciona

4

Eu tenho uma configuração de estrutura de site da seguinte maneira, que estou tentando organizar níveis de acesso para cada um, mas sem especificar <Directory> , pois isso exige que a estrutura seja corrigida (também, se eu copiar isso para um site diferente) subpasta, exigiria a edição de todos os .htaccess para o novo local).

  • / app / - permitir tudo, negar config / etc
  • / app / templates / - negar todos
  • / app / templates / mytheme / - permite imagens, javascript, css, somente fontes
  • / app / lib / - negar todos

Eu tentei implementar o novo esquema de diretivas (ish) do Apache2.4:

/etc/apache2/conf-enabled/security.conf

... more stuff above ...

<Directory />
   AllowOverride All
   Require all denied
</Directory>

... more stuff below ...

E adicionando Require all allowed a .htaccess na raiz do aplicativo, ao adicionar Require all denied a .htaccess nas pastas às quais desejo negar acesso.

O problema é Require all denied parece não fazer absolutamente nada. Eu vi referência a usar o mod_auth_compat ou qualquer biblioteca, mas parece ser apenas necessário para versões mais antigas do apache (v2.3).

Estou usando o Apache 2.4 no Debian 8.

Anteriormente, eu forneceria:

Order Allow, Deny
Deny from all

Em seguida, elimine o seguinte em pastas que requerem acesso:

Allow from all

.. e onde eu preciso permitir somente acesso ao tipo de arquivo específico,

<FilesMatch "\.(jpg|jpeg|gif|png|bmp|svg|css|less|sass|scss|js|ttf|woff|woff2|eot)$">
    Allow from all
</FilesMatch>

De acordo com a documentação do apache, resultados inesperados podem surgir da mistura de declarações antigas e novas e, como tal, estou usando apenas novas declarações. Não existem arquivos .htaccess ou arquivos *.conf carregados usando o antigo formato de declaração para permissões - então isso deve funcionar?

Dada a estrutura de pastas que eu coloquei, e o que é carregado em '/etc/apache2/conf-enabled/security.conf' (já que é onde a declaração "root" é para AllowOverride [ela não parece função ao especificar AllowOverride All dentro do mesmo formato de declaração nos sites conf (000-default.conf)], alguém poderia dar alguma orientação ou preferencialmente uma solução funcional para esse problema.

    
por Kraang Prime 15.04.2016 / 20:36

0 respostas