nginx e HTTP Referer

2

Estou usando o nginx junto com o php5-fpm e com o seguinte arquivo fastcgi_params :

fastcgi_param   CONTENT_LENGTH      $content_length;
fastcgi_param   CONTENT_TYPE        $content_type;
fastcgi_param   DOCUMENT_ROOT       $document_root;
fastcgi_param   DOCUMENT_URI        $document_uri;
fastcgi_param   GATEWAY_INTERFACE   CGI/1.1;
fastcgi_param   HTTPS               $https;
fastcgi_param   PATH_INFO           $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED     $document_root$fastcgi_path_info;
fastcgi_param   QUERY_STRING        $query_string;
fastcgi_param   REDIRECT_STATUS     200;
fastcgi_param   REMOTE_ADDR         $remote_addr;
fastcgi_param   REMOTE_PORT         $remote_port;
fastcgi_param   REQUEST_METHOD      $request_method;
fastcgi_param   REQUEST_URI         $request_uri;
fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME         $fastcgi_script_name;
fastcgi_param   SERVER_ADDR         $server_addr;
fastcgi_param   SERVER_NAME         $server_name;
fastcgi_param   SERVER_PORT         $server_port;
fastcgi_param   SERVER_PROTOCOL     $server_protocol;
fastcgi_param   SERVER_SOFTWARE     nginx/$nginx_version;

Eu notei que a variável $_SERVER['HTTP_REFERER'] não está definida. Eu procurei no wiki nginx por qualquer referência ao cabeçalho Referer, mas não consegui encontrar nada que mencionasse problemas relacionados ao fastcgi.

Como posso fazer o nginx passar esse cabeçalho? Estou faltando algo óbvio aqui?

    
por Alix Axel 01.07.2013 / 09:36

1 resposta

4

A variável de ambiente HTTP_REFERER será definida por nginx para o script CGI se e somente se o agente do usuário remoto (por exemplo, navegador da Web) fornecer o cabeçalho Referer: opcional. O conteúdo deste cabeçalho também é inteiramente arbitrário por parte do agente do usuário remoto (embora eles devam ser a última página visitada, isso nem sempre é o que é, e nada o restringe a ser assim ).

Sempre que seu script CGI usar essa variável, ele deverá ter um caminho de controle alternativo para tratar os casos em que ele não está configurado e deve reconhecer que, muitas vezes, estará errado ou falsificado.

    
por 01.07.2013 / 10:13