[Cascavel-pm] HTTP_REFERER - variável de ambiente não funciona no protocolo https
Silvio Almeida
scvalmei em graaph.arq.br
Quinta Maio 15 12:44:21 PDT 2008
Éden,
Claro, você tem toda razão, percebi meu erro logo em seguida, o
Http-Referer trata de sequencia de URL acessadas, e não do ponto de
origem dos acessos.
Na verdade não vai ter jeito, porque se a página https://xyz/index.html
supostamente gera conteúdo (links no caso) em função de um header que
além de não ser confiável pode nem sequer existir, então o problema não
tem solução.
A alternativa de webservice que você mencionou, ou o esquema de token
que o Nilson descreveu, são bastante parecidos na medida em que os sites
"licenciados" devem aderir a um esquema particular de comunicação com o
servidor https://xyz, ou seja, um "protocolo" ou "contrato particular de
referenciação". Este "protocolo" (não sei se devia botar aspas) pode
implementar qualquer grau de segurança, basta querer e podemos ter
chaves triplas DSA-RGB 10024 bits por pixel.
A característica mais interessante aqui é que tanto em um caso (Éden)
como em outro (Nilson) a implementação necessariamente acontece nos dois
extremos da linha, isto é, cada página "licenciada" precisa implementar
sua parte do protocolo para poder falar com https://xyz.
O que não acontece na solução que depende apenas do Http-Referer, onde
somente https://xyz cuidaria de manter a lista de sites "licenciados".
De certa forma, o navegador implementa a sua metade de um esquema
simplório: ele envia a URL atual no próximo request sob o header
Http-Referer. O que, em termos de segurança, não serve para nada.
-Silvio
Eden Cardim wrote:
> 2008/5/15 Silvio Almeida <scvalmei em graaph.arq.br>:
>
>> Acessando $ENV{REMOTE_ADDRESS} a partir do CGI você obtém o IP que fez o
>> request. Esta informação é totalmente confiável pois não vem de um
>> header HTTP (forjável por natureza), mas de uma camada Ozzy inferior. Aí
>> no CGI você poderia testar o REMOTE_ADDRESS para determinados ranges
>> para liberar ou não acesso. Isto não funcionaria?
>>
>
> Ele quer bloquear a navegação a partir de links contidos em outros
> websites, não o usuário do user agent
Mais detalhes sobre a lista de discussão Cascavel-pm