Eu tenho uma implantação com o servidor apache 2.2.22 atrás do verniz.
O que eu gostaria de realizar é que a senha proteja um diretório com o htpasswd, mas torne isso acessível para certos usuários vindos de ips sem autenticação.
AuthType Basic
AuthName "test"
AuthUserFile /www/.htpasswd
Require valid-user
order deny,allow
deny from all
SetEnvIF X-Forwarded-For "1.2.3.4" AllowIP
Allow from env=AllowIP
Satisfy any
O que eu faço agora é isso, é uma solução, mas está funcionando.
Se o X-Forwarded-For IP (o cliente) for 1.2.3.4, deixe-o assistir a página sem autenticação.
O problema com isso é que é inseguro, o cliente pode simplesmente configurar um cabeçalho X-Forwareded-For e ignorar a autenticação.
Eu tentei o módulo Apache RPAF:
<IfModule rpaf_module>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 varniship
</IfModule>
O que teoricamente deveria restringir as requisições X-Forwarded-For vindas do proxy, eu nem tenho certeza se eu preciso deste módulo neste caso, já que o proxy sempre colocará o ip do cliente X-Forwarded-For por trás dele. Então o req se pareceria com:
X-Forwarded-For: <varniship>, clientip
Onde o clientip pode ser manipulado pelo cliente mais uma vez.
Existe uma maneira melhor de fazer isso?