Você está simplesmente verificando pelo CFDUMP do escopo do CGI, então ele não produzirá vars Env customizadas. ele apenas copia uma lista pré-definida de cgi vars.
Estou trabalhando com uma configuração do servidor Apache onde queremos usar o SetEnv no vhost para definir se o código está sendo executado em desenvolvimento, beta ou produção. O aplicativo da Web real está sendo executado no Coldfusion 8 / JRun . Eu configurei o valor no vhost usando o seguinte código:
<VirtualHost *:80>
...
SetEnv COLDFUSION_ENVIRONMENT development
...
</VirtualHost>
O aplicativo lê esse valor bem. No entanto, se eu usar o plug-in Modify Headers no Firefox para enviar um cabeçalho chamado COLDFUSION_ENVIRONMENT com outro valor, por exemplo, foobar, então o valor vindo do navegador é usado no aplicativo, não o valor definido no vhost. A questão, claro, é por que e como posso evitar isso? Usar uma variável de ambiente parece ser bastante comum para determinar em qual servidor um aplicativo está rodando, então se essa for a maneira de fazê-lo, parece uma grande falha de segurança para mim, já que abriria a opção mudar para o modo de desenvolvimento no servidor de produções ... Existe alguma outra forma de melhor prática para fazer isso no Coldfusion?
Atualização:
Consegui contornar o problema original usando o seguinte em vez de SetEnv:
<VirtualHost *:80>
...
RequestHeader set COLDFUSION_ENVIRONMENT development
...
</VirtualHost>
No entanto, ele ainda parece um hack e eu ainda gostaria de saber por que o Coldfusion está basicamente ignorando valores SetEnv se você os enviar como cabeçalho e também se há uma prática recomendada ou não.
Você está simplesmente verificando pelo CFDUMP do escopo do CGI, então ele não produzirá vars Env customizadas. ele apenas copia uma lista pré-definida de cgi vars.