Eu tenho trabalhado com o ColdFusion por um longo tempo. Algo que foi semeado em meu cérebro é que, para segurança máxima, você deve separar fisicamente o servidor web do servidor ColdFusion. Então, sempre fiz isso usando o que a Adobe chama de "modo distribuído". O IIS está em um servidor e o ColdFusion está em um servidor diferente. Eles se comunicam através do conector da web como de costume, embora pela rede.
Há vários anos eu me deparei com postagens que mencionam que usar um proxy reverso é tão seguro quanto a execução no modo distribuído. Com a configuração do proxy reverso, o servidor da Web e o servidor ColdFusion estão na mesma máquina física, mas há um servidor proxy que lida com as solicitações e funções como o servidor da Web (basicamente). Ainda em minha mente, vejo a separação física como sendo mais segura.
É difícil encontrar uma recomendação definitiva na internet. O modo distribuído ainda é mencionado mesmo na documentação do ColdFusion 11 - Para obter mais informações sobre a Ferramenta de Configuração do Servidor da Web, incluindo informações sobre multihoming e uso distribuído, consulte o guia Configurando e administrando o ColdFusion . (Embora não haja realmente muita informação sobre isso nessa página referenciada.) Ambas as configurações parecem ser mencionadas em vários blogs e posts, mas eu acho mais comum que as pessoas estejam usando a configuração do proxy reverso ao invés da configuração do modo distribuído. Nada de concreto, apenas a minha percepção enquanto vasculhei a web. A execução no modo distribuído, com o servidor da Web e o servidor ColdFusion em servidores separados, definitivamente adiciona uma camada de complexidade ao configurar as coisas. Os arquivos estáticos residem no servidor da Web e nos arquivos CFML no servidor ColdFusion. Etc. Quando você está usando produtos de terceiros, isso pode ser difícil de configurar corretamente.
Então, a minha pergunta é, assumindo que tudo o resto é igual, para máxima segurança você usa o modo distribuído ou uma configuração de proxy reverso? E algumas razões pelas quais você faz.
Infelizmente, as guias de bloqueio do ColdFusion estão confundindo o assunto. Aqui está o que eu encontrei.
No bloqueio do ColdFusion 9 guia básico (páginas 14-15):
You might also consider installing ColdFusion in distributed mode. This allows the web server to reside on a physically separate server from the ColdFusion server. You can also connect multiple web servers to a single ColdFusion server (this is called multihoming in the ColdFusion 9 documentation). This separation can provide additional security and should be considered in environments requiring maximum security. To install distributed mode, select the built-in web server option. For information about configuring distributed mode, see http://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_distributed_mode02.html. For details about multihoming, see http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc3.html.
Another way to separate the public-facing web server and the ColdFusion server is by using a reverse proxy. In a reverse proxy setup, the ColdFusion server still has a web server installed, but all external client requests are handled by the proxy server, and certain requests are sent to the ColdFusion server for processing.
No guia de bloqueio do ColdFusion 10 (página 27), essa declaração foi reduzida a isto:
For maximum security consider running the web server and ColdFusion on separate physical servers.
One way to separate the public facing web server and the ColdFusion server is by using a reverse proxy.
In a reverse proxy setup the ColdFusion server will still have a web server installed, however all external client requests will be handled by the proxy server, and only specific requests will be sent to the ColdFusion server for processing. Consult your web servers documentation to set up a reverse proxy.
E no bloqueio do ColdFusion 11 guia não há menção de qualquer um. Parece que deve estar na página 11 ou próximo dela, que é onde as instruções estavam localizadas nos outros documentos, juntamente com a execução da ferramenta de configuração do servidor da web. Estou muito curioso para saber por que Pete tirou isso do documento mais recente.
Enquanto estou usando o Adobe ColdFusion, eu também marquei essa pergunta com a Railo para obter mais informações.