Restringir o acesso dependendo da variável de ambiente

Restringir o acesso dependendo da variável de ambiente

Tentando ser inteligente e permitir acesso dependendo de uma variável de ambiente. Parece não funcionar (sem erros, a expressão é sempre falsa).


O que eu tentei:

<VirtualHost *:80>

  ...

  <Directory /var/www/html>
    Options       Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order         allow,deny

    <If "reqenv('ENVIRONMENT_STATE') == 'dev'">
      allow from 1.22.333.0/24
      deny from all
    </If>
    <Else>
      allow from all
    </Else>
  </Directory>
</VirtualHost>

Comportamento esperado:

Se ENVIRONMENT_STATEestiver definido como 'dev', restrinja todo o acesso, exceto o IP mencionado.


Fontes:

http://httpd.apache.org/docs/2.4/mod/core.html#else
https://httpd.apache.org/docs/2.4/expr.html

Responder1

Eu usaria o arquivo .htaccess para restrições de IP. As razões são:

  • Você pode controlá-lo.
  • Não é necessário reiniciar o servidor ao adicionar ou remover endereços IP.
  • Se você acidentalmente se bloquear, poderá sempre entrar por FTP e editar o arquivo para restaurar o acesso.

Veja issoperguntaPor exemplo.

informação relacionada