
Tenho a seguinte situação:
- Serviço executado com acesso seguro (usuário/senha) através de aplicação web em:
Dentro desta aplicação (embed/iframe/etc) configuro alguns serviços que incorporam dados de um subdomínio.
- Serviços de subdomínio que devem ser incorporados:
Esses aplicativos incorporam muitos serviços em "data.myapp.com", como "data.myapp.com/sevice1", "data.myapp.com/sevice2", etc ...
Mas a questão é que:
NÃO QUERO acesso direto ao subdomínio "data.myapp.com"... Quero permitir todo o tráfego somente se a origem for do URLhttps://myapp.com.
Aqui está a aparência do meu arquivo conf nginx:
server {
server_name myapp.com;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html;
}
server {
server_name data.myapp.com;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
allow myapp.com;
deny all;
location /service1/ {...}
location /service2/ {...}
location /service3/ {...}
}
Mas parece que só posso usar allow
com endereço IP e nesse caso o servidor tem o mesmo endereço IP.
Existe uma maneira de bloquear o acesso direto ao server_name atual e permiti-lo apenas de outro domínio?
Obrigado por qualquer ajuda!
ATUALIZAR
Consegui, em parte, bloquear o acesso direto ao meu URL data.myapp.com usando o cabeçalho do referenciador ... mas isso NÃO É SEGURO, uma vez que podemos manipular o cabeçalho do referenciador ...
Siga o código:
server {
[...]
if ( $http_referer !~* 'myapp.com' ) {
return 404;
}
[...]
}